Distribution: Debian Sid Hardware Environment: Nforce2 + gforce4 + leadtek winfast TV 2000 (Bt878) Software Environment: kernel module is snd_bt87x (and tuner and bttv), and tv app is xdtv. Problem Description: I can't watch tv with this kernel (it worked with 2.6.10). There is no image or sound with xdtv, and I get these errors sent by kernel when I try to access the bttv device : Feb 5 17:43:57 client kernel: tuner: i2c i/o error: rc == -121 (should be 4) Feb 5 17:44:05 client last message repeated 4 times Feb 5 17:44:48 client kernel: bttv0: timeout: drop=328 irq=3696/3696, risc=1654f044, bits: HSYNC OFLOW FDSR Feb 5 17:44:48 client kernel: bttv0: reset, reinitialize Feb 5 17:44:48 client kernel: bttv0: PLL: 28636363 => 35468950 . ok Feb 5 17:44:48 client kernel: tuner: i2c i/o error: rc == -121 (should be 4) Feb 5 17:45:26 client kernel: bttv0: timeout: drop=608 irq=4243/4243, risc=1653406c, bits: HSYNC OFLOW FDSR Feb 5 17:45:26 client kernel: bttv0: reset, reinitialize Feb 5 17:45:26 client kernel: bttv0: PLL: 28636363 => 35468950 . ok Feb 5 17:45:26 client kernel: tuner: i2c i/o error: rc == -121 (should be 4) Feb 5 17:46:06 client kernel: bttv0: timeout: drop=889 irq=4815/4815, risc=16534034, bits: HSYNC OFLOW FDSR Feb 5 17:46:06 client kernel: bttv0: reset, reinitialize Feb 5 17:46:06 client kernel: bttv0: PLL: 28636363 => 35468950 . ok Feb 5 17:46:06 client kernel: tuner: i2c i/o error: rc == -121 (should be 4) Feb 5 17:47:10 client kernel: tuner: i2c i/o error: rc == -121 (should be 4) Feb 5 17:47:17 client last message repeated 3 times Feb 5 17:47:26 client kernel: bttv0: timeout: drop=1497 irq=5994/5994, risc=1bfec03c, bits: VSYNC HSYNC OFLOW FBUS FDSR Feb 5 17:47:26 client kernel: bttv0: reset, reinitialize Feb 5 17:47:26 client kernel: bttv0: PLL: 28636363 => 35468950 . ok Feb 5 17:47:26 client kernel: tuner: i2c i/o error: rc == -121 (should be 4) Feb 5 17:48:41 client kernel: bttv0: timeout: drop=2035 irq=7073/7073, risc=140a6044, bits: HSYNC OFLOW FDSR Feb 5 17:48:41 client kernel: bttv0: reset, reinitialize Feb 5 17:48:41 client kernel: bttv0: PLL: 28636363 => 35468950 . ok Feb 5 17:48:41 client kernel: tuner: i2c i/o error: rc == -121 (should be 4) Feb 5 17:48:52 client kernel: bttv0: timeout: drop=2118 irq=7234/7234, risc=138f303c, bits: HSYNC OFLOW FDSR Feb 5 17:48:52 client kernel: bttv0: reset, reinitialize Feb 5 17:48:52 client kernel: bttv0: PLL: 28636363 => 35468950 . ok Feb 5 17:48:52 client kernel: tuner: i2c i/o error: rc == -121 (should be 4) Feb 5 17:48:59 client kernel: bttv0: timeout: drop=2170 irq=7332/7332, risc=1bfec03c, bits: VSYNC HSYNC OFLOW FBUS FDSR Feb 5 17:48:59 client kernel: bttv0: reset, reinitialize Feb 5 17:48:59 client kernel: bttv0: PLL: 28636363 => 35468950 . ok Feb 5 17:48:59 client kernel: tuner: i2c i/o error: rc == -121 (should be 4) Steps to reproduce: Runs xdtv (that's it) ... and look at kernel log.
for people who have this problem too, just reverse these patches : http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.11-rc3/2.6.11-rc3-mm1/broken-out/changes-to-the-i2c-driver-to-support-a-non-blocking-interface.patch http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.11-rc3/2.6.11-rc3-mm1/broken-out/modify-the-i801-i2c-driver-to-use-the-non-blocking-interface.patch then it works I leave it open for developpers who would like to add some information. and thanks to them
Created attachment 4533 [details] Fix the i2c bug Ok, there is finally a fix for this bug which can be applied on the top of mm tree. Thanks to Corey Minyard for this patch and his great work on the kernel.