diff options
author | istvan_v@mailbox.hu <istvan_v@mailbox.hu> | 2011-06-06 13:00:17 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-07-27 17:52:40 -0300 |
commit | 09f4634293f2d48a9619f51b104bef8e6cc6d559 (patch) | |
tree | 22185c6fff9502b82aee5a48f277444b7ceccd66 /drivers/media/common | |
parent | 7c8ec47a92107281cd00d5d4c2b7ccfb53143e28 (diff) | |
download | linux-09f4634293f2d48a9619f51b104bef8e6cc6d559.tar.bz2 |
[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: Istvan Varga <istvan_v@mailbox.hu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/common')
-rw-r--r-- | drivers/media/common/tuners/xc4000.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/media/common/tuners/xc4000.c b/drivers/media/common/tuners/xc4000.c index ebc84269b5e6..a053dece60ce 100644 --- a/drivers/media/common/tuners/xc4000.c +++ b/drivers/media/common/tuners/xc4000.c @@ -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 @@ check_device: 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; } |