aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/common
diff options
context:
space:
mode:
authoristvan_v@mailbox.hu <istvan_v@mailbox.hu>2011-06-06 13:00:17 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-07-27 17:52:40 -0300
commit09f4634293f2d48a9619f51b104bef8e6cc6d559 (patch)
tree22185c6fff9502b82aee5a48f277444b7ceccd66 /drivers/media/common
parent7c8ec47a92107281cd00d5d4c2b7ccfb53143e28 (diff)
downloadkernel_samsung_smdk4412-09f4634293f2d48a9619f51b104bef8e6cc6d559.zip
kernel_samsung_smdk4412-09f4634293f2d48a9619f51b104bef8e6cc6d559.tar.gz
kernel_samsung_smdk4412-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.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/media/common/tuners/xc4000.c b/drivers/media/common/tuners/xc4000.c
index ebc8426..a053dec 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;
}