diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-09-14 10:23:20 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-09-14 10:23:20 -0300 |
commit | 3de64fed183d41e17a3a2de86611b84658781f2f (patch) | |
tree | 8076250f6af79cc5b2f97f228145abad5a562738 /linux/drivers/media/common/tuners | |
parent | 0a4f9bdeb8cf961da6d77500e05b5b1a0478dc09 (diff) | |
download | mediapointer-dvb-s2-3de64fed183d41e17a3a2de86611b84658781f2f.tar.gz mediapointer-dvb-s2-3de64fed183d41e17a3a2de86611b84658781f2f.tar.bz2 |
tm6000: I2C reading operations is not reliable on tm6000
From: Mauro Carvalho Chehab <mchehab@redhat.com>
tm6000 sometimes can't read from i2c, but this is currently required for
tuner-xc2028 to work.
This patch adds an option to tuner-xc2028 to not rely on i2c reading.
Priority: normal
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'linux/drivers/media/common/tuners')
-rw-r--r-- | linux/drivers/media/common/tuners/tuner-xc2028.c | 10 | ||||
-rw-r--r-- | linux/drivers/media/common/tuners/tuner-xc2028.h | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/linux/drivers/media/common/tuners/tuner-xc2028.c b/linux/drivers/media/common/tuners/tuner-xc2028.c index 307162c4c..c23b00ac3 100644 --- a/linux/drivers/media/common/tuners/tuner-xc2028.c +++ b/linux/drivers/media/common/tuners/tuner-xc2028.c @@ -816,8 +816,14 @@ check_device: /* Check firmware version against what we downloaded. */ if (priv->firm_version != ((version & 0xf0) << 4 | (version & 0x0f))) { - tuner_err("Incorrect readback of firmware version.\n"); - goto fail; + if (!priv->ctrl.read_not_reliable) { + tuner_err("Incorrect readback of firmware version.\n"); + goto fail; + } else { + tuner_err("Returned an incorrect version. However, " + "read is not reliable enough. Ignoring it.\n"); + hwmodel = 3028; + } } /* Check that the tuner hardware model remains consistent over time. */ diff --git a/linux/drivers/media/common/tuners/tuner-xc2028.h b/linux/drivers/media/common/tuners/tuner-xc2028.h index e11607181..9778c96a5 100644 --- a/linux/drivers/media/common/tuners/tuner-xc2028.h +++ b/linux/drivers/media/common/tuners/tuner-xc2028.h @@ -40,6 +40,7 @@ struct xc2028_ctrl { unsigned int vhfbw7:1; unsigned int uhfbw8:1; unsigned int disable_power_mgmt:1; + unsigned int read_not_reliable:1; unsigned int demod; enum firmware_type type:2; }; |