Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 09f46342 authored by istvan_v@mailbox.hu's avatar istvan_v@mailbox.hu Committed by Mauro Carvalho Chehab
Browse files

[media] xc4000: check firmware version



Enabled code to check if the version of the firmware reported by the hardware
is correct after uploading it.

Signed-off-by: default avatarIstvan Varga <istvan_v@mailbox.hu>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 7c8ec47a
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -919,7 +919,7 @@ static int check_firmware(struct dvb_frontend *fe, unsigned int type,
	struct xc4000_priv         *priv = fe->tuner_priv;
	struct firmware_properties new_fw;
	int			   rc = 0, is_retry = 0;
	u16			   version = 0, hwmodel;
	u16			   hwmodel;
	v4l2_std_id		   std0;
	u8			   hw_major, hw_minor, fw_major, fw_minor;

@@ -1032,23 +1032,23 @@ static int check_firmware(struct dvb_frontend *fe, unsigned int type,
		hwmodel, hw_major, hw_minor, fw_major, fw_minor);

	/* Check firmware version against what we downloaded. */
#ifdef DJH_DEBUG
	if (priv->firm_version != ((version & 0xf0) << 4 | (version & 0x0f))) {
		printk("Incorrect readback of firmware version %x.\n",
		       (version & 0xff));
	if (priv->firm_version != ((fw_major << 8) | fw_minor)) {
		printk(KERN_WARNING
		       "Incorrect readback of firmware version %d.%d.\n",
		       fw_major, fw_minor);
		goto fail;
	}
#endif

	/* Check that the tuner hardware model remains consistent over time. */
	if (priv->hwmodel == 0 &&
	    (hwmodel == XC_PRODUCT_ID_XC4000 ||
	     hwmodel == XC_PRODUCT_ID_XC4100)) {
		priv->hwmodel = hwmodel;
		priv->hwvers  = version & 0xff00;
		priv->hwvers = (hw_major << 8) | hw_minor;
	} else if (priv->hwmodel == 0 || priv->hwmodel != hwmodel ||
		   priv->hwvers != (version & 0xff00)) {
		printk("Read invalid device hardware information - tuner "
		   priv->hwvers != ((hw_major << 8) | hw_minor)) {
		printk(KERN_WARNING
		       "Read invalid device hardware information - tuner "
		       "hung?\n");
		goto fail;
	}