V4L/DVB (12825): tm6000: I2C reading operations is not reliable on tm6000
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. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
e5cc2bf445
commit
2d5024a9e9
|
@ -813,8 +813,14 @@ check_device:
|
||||||
|
|
||||||
/* Check firmware version against what we downloaded. */
|
/* Check firmware version against what we downloaded. */
|
||||||
if (priv->firm_version != ((version & 0xf0) << 4 | (version & 0x0f))) {
|
if (priv->firm_version != ((version & 0xf0) << 4 | (version & 0x0f))) {
|
||||||
tuner_err("Incorrect readback of firmware version.\n");
|
if (!priv->ctrl.read_not_reliable) {
|
||||||
goto fail;
|
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. */
|
/* Check that the tuner hardware model remains consistent over time. */
|
||||||
|
|
|
@ -40,6 +40,7 @@ struct xc2028_ctrl {
|
||||||
unsigned int vhfbw7:1;
|
unsigned int vhfbw7:1;
|
||||||
unsigned int uhfbw8:1;
|
unsigned int uhfbw8:1;
|
||||||
unsigned int disable_power_mgmt:1;
|
unsigned int disable_power_mgmt:1;
|
||||||
|
unsigned int read_not_reliable:1;
|
||||||
unsigned int demod;
|
unsigned int demod;
|
||||||
enum firmware_type type:2;
|
enum firmware_type type:2;
|
||||||
};
|
};
|
||||||
|
|
|
@ -189,6 +189,7 @@ static void tm6000_config_tuner (struct tm6000_core *dev)
|
||||||
ctl.fname = "tm6000-xc3028.fw";
|
ctl.fname = "tm6000-xc3028.fw";
|
||||||
|
|
||||||
ctl.mts = 1;
|
ctl.mts = 1;
|
||||||
|
ctl.read_not_reliable = 1;
|
||||||
|
|
||||||
xc2028_cfg.tuner = TUNER_XC2028;
|
xc2028_cfg.tuner = TUNER_XC2028;
|
||||||
xc2028_cfg.priv = &ctl;
|
xc2028_cfg.priv = &ctl;
|
||||||
|
|
Loading…
Reference in New Issue