Re: Hauppauge WinTV regreession from 2.6.24 to 2.6.25
- Date: Fri, 25 Apr 2008 12:03:07 -0300
- From: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxx>
- Subject: Re: Hauppauge WinTV regreession from 2.6.24 to 2.6.25
On Fri, 25 Apr 2008 10:40:14 -0400
"Michael Krufky" <mkrufky@xxxxxxxxxxx> wrote:
> On Fri, Apr 25, 2008 at 9:56 AM, Mauro Carvalho Chehab
> <mchehab@xxxxxxxxxxxxx> wrote:
> > On Thu, 24 Apr 2008 05:55:28 +0200
> > hermann pitton <hermann-pitton@xxxxxxxx> wrote:
> >
> > > > > >>>> I am testing a kernel upgrade from 2.6.24.to 2.6.25, and the drivers
> > > > > >>>> for the Hauppauge WinTV appear to have suffered some regression
> > > > > >>>> between the two kernel versions.
> >
> >
> > > do you see the auto detection issue?
> > >
> > > Either tell it is just nothing, what I very seriously doubt, or please
> > > comment.
> > >
> > > I don't like to end up on LKML again getting told that written rules
> > > don't exist ;)
> >
> > Sorry for now answer earlier. Too busy here, due to the merge window.
> >
> > This seems to be an old bug. On several cases, tuner_type information came from
> > some sort of autodetection schema, but the proper setup is not sent to tuner.
> >
> > Please test the enclosed patch. It warrants that TUNER_SET_TYPE_ADDR is called
> > at saa7134_board_init2() for all those boards:
> >
> > SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331
> > SAA7134_BOARD_ASUS_EUROPA2_HYBRID
> > SAA7134_BOARD_ASUSTeK_P7131_DUAL
> > SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA
> > SAA7134_BOARD_AVERMEDIA_SUPER_007
> > SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM
> > SAA7134_BOARD_BMK_MPEX_NOTUNER
> > SAA7134_BOARD_BMK_MPEX_TUNER
> > SAA7134_BOARD_CINERGY_HT_PCI
> > SAA7134_BOARD_CINERGY_HT_PCMCIA
> > SAA7134_BOARD_CREATIX_CTX953
> > SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS
> > SAA7134_BOARD_FLYDVB_TRIO
> > SAA7134_BOARD_HAUPPAUGE_HVR1110
> > SAA7134_BOARD_KWORLD_ATSC110
> > SAA7134_BOARD_KWORLD_DVBT_210
> > SAA7134_BOARD_MD7134
> > SAA7134_BOARD_MEDION_MD8800_QUADRO
> > SAA7134_BOARD_PHILIPS_EUROPA
> > SAA7134_BOARD_PHILIPS_TIGER
> > SAA7134_BOARD_PHILIPS_TIGER_S
> > SAA7134_BOARD_PINNACLE_PCTV_310i
> > SAA7134_BOARD_TEVION_DVBT_220RF
> > SAA7134_BOARD_TWINHAN_DTV_DVB_3056
> > SAA7134_BOARD_VIDEOMATE_DVBT_200
> > SAA7134_BOARD_VIDEOMATE_DVBT_200A
> > SAA7134_BOARD_VIDEOMATE_DVBT_300
> >
> > It is important to test the above boards, to be sure that no regression is
> > caused.
> >
> > Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxx>
> >
> > diff -r 60110897e86a linux/drivers/media/video/saa7134/saa7134-cards.c
> > --- a/linux/drivers/media/video/saa7134/saa7134-cards.c Fri Apr 25 08:04:54 2008 -0300
> > +++ b/linux/drivers/media/video/saa7134/saa7134-cards.c Fri Apr 25 10:44:16 2008 -0300
>
> Mauro,
>
> I didn't review your patch yet, and it needs to be tested, however,
> the bug reported in this thread deals with the same regression that
> you are attempting to repair, but on the cx88 driver -- not the
> saa7134 driver.
>
> Both drivers need to be tested to make sure that this regression has been fixed.
Ok, this is a cx88 version. Of course, needs testing.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxx>
diff -r 5c9a4decb57b linux/drivers/media/video/cx88/cx88-cards.c
--- a/linux/drivers/media/video/cx88/cx88-cards.c Fri Apr 25 11:02:29 2008 -0300
+++ b/linux/drivers/media/video/cx88/cx88-cards.c Fri Apr 25 12:01:48 2008 -0300
@@ -2495,26 +2495,27 @@
static void cx88_card_setup(struct cx88_core *core)
{
+ int need_init_tuner = 1;
static u8 eeprom[256];
if (0 == core->i2c_rc) {
core->i2c_client.addr = 0xa0 >> 1;
- tveeprom_read(&core->i2c_client,eeprom,sizeof(eeprom));
+ tveeprom_read(&core->i2c_client, eeprom, sizeof(eeprom));
}
switch (core->boardnr) {
case CX88_BOARD_HAUPPAUGE:
case CX88_BOARD_HAUPPAUGE_ROSLYN:
if (0 == core->i2c_rc)
- hauppauge_eeprom(core,eeprom+8);
+ hauppauge_eeprom(core, eeprom+8);
break;
case CX88_BOARD_GDI:
if (0 == core->i2c_rc)
- gdi_eeprom(core,eeprom);
+ gdi_eeprom(core, eeprom);
break;
case CX88_BOARD_WINFAST2000XP_EXPERT:
if (0 == core->i2c_rc)
- leadtek_eeprom(core,eeprom);
+ leadtek_eeprom(core, eeprom);
break;
case CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1:
case CX88_BOARD_HAUPPAUGE_NOVASE2_S1:
@@ -2524,7 +2525,7 @@
case CX88_BOARD_HAUPPAUGE_HVR3000:
case CX88_BOARD_HAUPPAUGE_HVR1300:
if (0 == core->i2c_rc)
- hauppauge_eeprom(core,eeprom);
+ hauppauge_eeprom(core, eeprom);
break;
case CX88_BOARD_KWORLD_DVBS_100:
cx_write(MO_GP0_IO, 0x000007f8);
@@ -2605,6 +2606,20 @@
cx88_call_i2c_clients(core, TUNER_SET_CONFIG, &tea5767_cfg);
}
+ default:
+ need_init_tuner = 0;
+ }
+
+ if (need_init_tuner && core->board.tuner_type != TUNER_ABSENT) {
+ struct tuner_setup tun_setup;
+
+ memset (&tun_setup, 0, sizeof(tun_setup));
+
+ tun_setup.tuner_callback = cx88_tuner_callback;
+ tun_setup.mode_mask = T_RADIO |
+ T_ANALOG_TV |
+ T_DIGITAL_TV;
+ cx88_call_i2c_clients(core, TUNER_SET_TYPE_ADDR, &tun_setup);
}
if (core->board.tuner_type == TUNER_XC2028) {
@@ -2622,6 +2637,7 @@
ctl.fname);
cx88_call_i2c_clients(core, TUNER_SET_CONFIG, &xc2028_cfg);
}
+
}
/* ------------------------------------------------------------------ */
>
> -Mike
Cheers,
Mauro
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list