mirror of
https://github.com/torvalds/linux.git
synced 2024-12-15 07:33:56 +00:00
V4L/DVB (12265): em28xx: fix tuning problem in HVR-900 (R1)
When the change was introduced in the zl10353 for the i2c gate behavior, this broke the HVR-900 which was not behind a gate. Use a version of the zl10353 config profile that indicates the tuner is not behind such a gate. Without this patch the first tune succeeds, but subsequent tuning attempts will fail. The change also renames the terratec zl10353 profile I wrote to be more generic, since it is shared by the non-terratec device. Thanks to Michael Krufky for providing a HVR-900 and DVB-T environment to test with. Cc: Michael Krufky <mkrufky@kernellabs.com> Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
e16e5a3739
commit
a84f79aed6
@ -245,7 +245,7 @@ static struct s5h1409_config em28xx_s5h1409_with_xc3028 = {
|
|||||||
.mpeg_timing = S5H1409_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK
|
.mpeg_timing = S5H1409_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct zl10353_config em28xx_terratec_xs_zl10353_xc3028 = {
|
static struct zl10353_config em28xx_zl10353_xc3028_no_i2c_gate = {
|
||||||
.demod_address = (0x1e >> 1),
|
.demod_address = (0x1e >> 1),
|
||||||
.no_tuner = 1,
|
.no_tuner = 1,
|
||||||
.disable_i2c_gate_ctrl = 1,
|
.disable_i2c_gate_ctrl = 1,
|
||||||
@ -477,7 +477,6 @@ static int dvb_init(struct em28xx *dev)
|
|||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900:
|
|
||||||
case EM2880_BOARD_KWORLD_DVB_310U:
|
case EM2880_BOARD_KWORLD_DVB_310U:
|
||||||
case EM2880_BOARD_EMPIRE_DUAL_TV:
|
case EM2880_BOARD_EMPIRE_DUAL_TV:
|
||||||
dvb->frontend = dvb_attach(zl10353_attach,
|
dvb->frontend = dvb_attach(zl10353_attach,
|
||||||
@ -488,10 +487,19 @@ static int dvb_init(struct em28xx *dev)
|
|||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900:
|
||||||
|
dvb->frontend = dvb_attach(zl10353_attach,
|
||||||
|
&em28xx_zl10353_xc3028_no_i2c_gate,
|
||||||
|
&dev->i2c_adap);
|
||||||
|
if (attach_xc3028(0x61, dev) < 0) {
|
||||||
|
result = -EINVAL;
|
||||||
|
goto out_free;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case EM2880_BOARD_TERRATEC_HYBRID_XS:
|
case EM2880_BOARD_TERRATEC_HYBRID_XS:
|
||||||
case EM2881_BOARD_PINNACLE_HYBRID_PRO:
|
case EM2881_BOARD_PINNACLE_HYBRID_PRO:
|
||||||
dvb->frontend = dvb_attach(zl10353_attach,
|
dvb->frontend = dvb_attach(zl10353_attach,
|
||||||
&em28xx_terratec_xs_zl10353_xc3028,
|
&em28xx_zl10353_xc3028_no_i2c_gate,
|
||||||
&dev->i2c_adap);
|
&dev->i2c_adap);
|
||||||
if (dvb->frontend == NULL) {
|
if (dvb->frontend == NULL) {
|
||||||
/* This board could have either a zl10353 or a mt352.
|
/* This board could have either a zl10353 or a mt352.
|
||||||
|
Loading…
Reference in New Issue
Block a user