-----BEGIN PGP SIGNED MESSAGE----- I solved the following problem while writing it up. I'm posting it anyway in case it helps other. I have a 848-based tuner card that works fine when I boot Red Hat's 2.4.18-27.8.0 kernel, but just shows snow when I cold boot Red Hat's 2.4.20-18.8 or 2.4.20-13.8 kernels. - - Everything else is unchanged: the same file systems and settings are present. All I change is the kernel that is being booted. So it seems as if the problem must be within the kernel. - - If I boot 2.4.18-27.8.0, use the tuner, and then reboot to 2.4.20-18.8 without turning off the power, the tuner works. So it seems as if the problem might be with initializing the device. - - when I look at the dmesg output for a cold and warm boot of the 2.4.20-18.8 kernel, I see no difference. - - the key difference is probably between bttv versions 0.7.91 and 0.7.104 I've included a diff between the bttv parts of the dmesg output of the 2.4.18-27.8.0 and 2.4.20-13.8 kernels. In each case, I did a fresh boot, started X, started and stopped xawtv, and did the dmesg. The diff was done with -U 100 to avoid gaps. Kernel version: -Linux version 2.4.18-27.8.0 (bhcompile@xxxxxxxxxxxxxxxxxxxxxxxxxx) (gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)) #1 Fri Mar 14 07:36:43 EST 2003 +Linux version 2.4.20-18.8 (bhcompile@xxxxxxxxxxxxxxxxxxxxx) (gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)) #1 Thu May 29 07:20:39 EDT 2003 Interesting message. I assume that it isn't relevant: +PCI: 00:09.2 PCI cache line size set incorrectly (32 bytes) by BIOS/FW. +PCI: 00:09.2 PCI cache line size corrected to 64. This output from lspci suggests it is one of the USB controllers: 00:09.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 51) Here is the lspci -vv output for the tuner: 00:0f.0 Multimedia video controller: Brooktree Corporation Bt848 Video Capture (rev 12) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 32 (4000ns min, 10000ns max) Interrupt: pin A routed to IRQ 5 Region 0: Memory at f5000000 (32-bit, prefetchable) [size=4K] Here is the meat of the diff: i2c-core.o: i2c core module -i2c-algo-bit.o: i2c bit algorithm module Linux video capture interface: v1.00 -bttv: driver version 0.7.91 loaded -bttv: using 2 buffers with 2080k (4160k total) for capture +i2c-algo-bit.o: i2c bit algorithm module +bttv: driver version 0.7.104 loaded +bttv: using 4 buffers with 2080k (8320k total) for capture bttv: Host bridge is VIA Technologies, Inc. VT8367 [KT266] bttv: Bt8xx card found (0). PCI: Found IRQ 5 for device 00:0f.0 -bttv0: Bt848 (rev 18) at 00:0f.0, irq: 5, latency: 32, memory: 0xf5000000 +bttv0: Bt848 (rev 18) at 00:0f.0, irq: 5, latency: 32, mmio: 0xf5000000 bttv0: using: BT848A(Aimslab Video Highway X) [card=14,insmod option] i2c-algo-bit.o: Adapter: bt848 #0 scl: 1 sda: 1 -- testing... i2c-algo-bit.o:1 scl: 1 sda: 0 i2c-algo-bit.o:2 scl: 1 sda: 1 i2c-algo-bit.o:3 scl: 0 sda: 1 i2c-algo-bit.o:4 scl: 1 sda: 1 i2c-algo-bit.o: bt848 #0 passed test. i2c-core.o: adapter bt848 #0 registered as adapter 0. +bttv0: using tuner=-1 bttv0: i2c: checking for MSP34xx @ 0x80... not found bttv0: i2c: checking for TDA9875 @ 0xb0... not found bttv0: i2c: checking for TDA7432 @ 0x8a... not found tvaudio: TV audio decoder + audio/video mux driver tvaudio: known chips: tda9840,tda9873h,tda9874h/a,tda9850,tda9855,tea6300,tea6420,tda8425,pic16c54 (PV951) i2c-core.o: driver generic i2c audio driver registered. -i2c-core.o: driver i2c TV tuner driver registered. -tuner: probing bt848 #0 i2c adapter [id=0x10005] -tuner: chip found @ 0xc0 -bttv0: i2c attach [client=Philips NTSC,ok] -i2c-core.o: client [Philips NTSC] registered to adapter [bt848 #0](pos. 0). +bttv0: PLL: 28636363 => 35468950 .. ok bttv0: registered device video0 bttv0: registered device vbi0 bttv0: registered device radio0 -tuner: tv freq set to 83.25 +bttv0: PLL can sleep, using XTAL (28636363). Hmm. The tuner is no longer being recognized. I don't know why. My modules.conf said: options i2c-core i2c_debug=1 options i2c-algo-bit bit_test=1 options bttv card=0x0e radio=1 bttv_verbose=2 options tuner debug=1 type=2 options tvaudio debug=1 I fixed the problem by adding " tuner=2" at the end of the options bttv line. Not sure why this became necessary. Hugh Redelmeier hugh@xxxxxxxxxx voice: +1 416 482-8253 -----BEGIN PGP SIGNATURE----- Version: 2.6.3ia Charset: noconv iQCVAwUBPxtIIcFAuQPManGZAQHXFAP/SU/uJRHsevD0D0VwAlAXJOAePkhT4aeW WtcRTh5uT+ppsQ82fqKKrGw3rdYwusTddvRNrCw/7ypdUgtqx6chhSNtrP9RIxee HdAGmrtZ4S6ipuEk8Fyoy0A3Bgg5FXJyP79MhHVYkjw4NCYGunGDX1oeesp7ni+v /tfdILIegB4= =vwY6 -----END PGP SIGNATURE-----