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 _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb