Bug 9455

Summary: Kernel BUG encountered when loading cx88-dvb module
Product: v4l-dvb Reporter: Brandon Ehle (azverkan)
Component: cx88Assignee: v4l-dvb_cx88
Status: CLOSED OBSOLETE    
Severity: normal CC: akpm, alan, firewalkergr, zzam
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.24-rc3 Subsystem:
Regression: No Bisected commit-id:
Attachments: Oops cx88-dvb

Description Brandon Ehle 2007-11-24 15:05:20 UTC
The cx88-dvb module is not currently working for my pcHDTV-3000 card.

In the process of trying to track down why the card will not upload it's firmware, I built a kernel with debugging information enabled and I ran into a couple kernel BUG()s.


Linux meowmix 2.6.24-rc3 #11 SMP PREEMPT Fri Nov 23 17:22:11 PST 2007 i686 GNU/Linux


lspci:


00:00.0 Host bridge: Intel Corporation 82915G/P/GV/GL/PL/910GL Memory Controller Hub (rev 04)
00:02.0 VGA compatible controller: Intel Corporation 82915G/GV/910GL Integrated Graphics Controller (rev 04)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d3)
00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)
00:1f.0 ISA bridge: Intel Corporation 82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)
00:1f.2 IDE interface: Intel Corporation 82801FR/FRW (ICH6R/ICH6RW) SATA Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
01:00.0 Non-VGA unclassified device: Conexant CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
01:00.1 Unclassified device [0080]: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (rev 05)
01:00.2 Unclassified device [0080]: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (rev 05)
01:03.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet (rev 10)
01:04.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80)


Repro steps:


Make sure all i2c, cx88, or51132 and alsa related modules are unloaded.

modprobe -v i2c-algo-bit bit_test=1 i2c_debug=3
modprobe -v or51132 debug=1
modprobe -v cx88xx card=22
modprobe -v cx88-dvb


At this point I get the following output:


Linux video capture interface: v2.00
i2c-core: driver [tveeprom] registered
cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.6 loaded
cx88[0]: subsystem: 7063:2000, board: pcHDTV HD3000 HDTV [card=22,insmod option]
cx88[0]: TV tuner type 60, Radio tuner type -1
i2c-adapter i2c-1: adapter [cx88[0]] registered
i2c-dev: adapter [cx88[0]] registered as minor 1
i2c-adapter i2c-1: found normal entry for adapter 1, addr 0x50
i2c-adapter i2c-1: master_xfer[0] W, addr=0x50, len=0
i2c-adapter i2c-1: NAK from device addr 0x50 msg #0
i2c-adapter i2c-1: master_xfer[0] W, addr=0x50, len=1
i2c-adapter i2c-1: NAK from device addr 0x50 msg #0
tveeprom 1-0050: Huh, no eeprom present (err=-121)?
cx88[0]/2: cx2388x 8802 Driver Manager
ACPI: PCI Interrupt 0000:01:00.2[A] -> GSI 21 (level, low) -> IRQ 20
cx88[0]/2: found at 0000:01:00.2, rev: 5, irq: 20, latency: 32, mmio: 0x81000000
cx88/2: cx2388x dvb driver version 0.0.6 loaded
cx88/2: registering cx8802 driver, type: dvb access: shared
cx88[0]/2: subsystem: 7063:2000, board: pcHDTV HD3000 HDTV [card=22]
cx88[0]/2: cx2388x based DVB/ATSC card
i2c-adapter i2c-1: master_xfer[0] R, addr=0x61, len=1
DVB: registering new adapter (cx88[0])
DVB: registering frontend 0 (Oren OR51132 VSB/QAM Frontend)...
cx88/2: unregistering cx8802 driver, type: dvb access: shared
cx88[0]/2: subsystem: 7063:2000, board: pcHDTV HD3000 HDTV [card=22]
ACPI: PCI interrupt for device 0000:01:00.2 disabled
i2c-dev: adapter [cx88[0]] unregistered
i2c-adapter i2c-1: adapter [cx88[0]] unregistered
i2c-core: driver [tveeprom] unregistered
i2c-dev: adapter [SMBus I801 adapter at 0500] unregistered
i2c-adapter i2c-0: adapter [SMBus I801 adapter at 0500] unregistered
i2c-core: driver [dev_driver] unregistered
i2c_algo_bit: Unknown parameter `debug'
Linux video capture interface: v2.00
i2c-core: driver [tveeprom] registered
cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.6 loaded
cx88[0]: subsystem: 7063:2000, board: pcHDTV HD3000 HDTV [card=22,insmod option]
cx88[0]: TV tuner type 60, Radio tuner type -1
cx88[0]: SDA stuck high!
cx88[0]: i2c register FAILED
cx88[0]/2: cx2388x 8802 Driver Manager
ACPI: PCI Interrupt 0000:01:00.2[A] -> GSI 21 (level, low) -> IRQ 20
cx88[0]/2: found at 0000:01:00.2, rev: 5, irq: 20, latency: 32, mmio: 0x81000000
cx88/2: cx2388x dvb driver version 0.0.6 loaded
cx88/2: registering cx8802 driver, type: dvb access: shared
cx88[0]/2: subsystem: 7063:2000, board: pcHDTV HD3000 HDTV [card=22]
cx88[0]/2: cx2388x based DVB/ATSC card
BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip: f8fae137 *pde = 00000000 
BUG: using smp_processor_id() in preemptible [00000001] code: modprobe/11445
caller is die+0x67/0x24d
 [<c01094aa>] show_trace_log_lvl+0x1a/0x30
 [<c0109e71>] show_trace+0x12/0x14
 [<c0109f9f>] dump_stack+0x16/0x18
 [<c049a398>] debug_smp_processor_id+0xb8/0xbc
 [<c010981e>] die+0x67/0x24d
 [<c05b612c>] do_page_fault+0x19c/0x7b0
 [<c05b496a>] error_code+0x72/0x78
 [<f918b70c>] dvb_pll_attach+0x273/0x2d3 [dvb_pll]
 [<f9158606>] cx8802_dvb_probe+0x4aa/0xfc3 [cx88_dvb]
 [<f91207b3>] cx8802_register_driver+0x14c/0x207 [cx8802]
 [<f915918d>] dvb_init+0x34/0x36 [cx88_dvb]
 [<c015a85b>] sys_init_module+0xf1/0x1a5d
 [<c01082ae>] sysenter_past_esp+0x6b/0xc1
 =======================
Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
Modules linked in: dvb_pll cx88_dvb cx88_vp3054_i2c cx8802 videobuf_dvb cx88xx ir_common videobuf_dma_sg videobuf_core btcx_risc tveeprom videodev v4l2_common v4l1_compat or51132 dvb_core i2c_algo_bit i2c_core ufs i915 drm binfmt_misc rfcomm l2cap bluetooth tcp_diag inet_diag ppdev parport_pc lp parport ac battery power_supply speedstep_lib cpufreq_userspace cpufreq_stats cpufreq_powersave cpufreq_ondemand freq_table cpufreq_conservative r8169 ipv6 deflate zlib_deflate twofish twofish_common camellia serpent blowfish ecb aes_i586 aes_generic geode_aes xcbc sha256_generic sha1_generic crypto_null af_key dm_snapshot dm_mirror dm_mod sbp2 psmouse ide_generic ide_disk ide_cd snd_intel8x0 snd_ac97_codec irtty_sir ac97_bus sir_dev snd_pcm_oss snd_mixer_oss snd_pcm irda snd_timer crc_ccitt pcspkr rtc iTCO_wdt snd soundcore snd_page_alloc button intel_agp agpgart evdev joydev raid10 raid456 async_xor async_memcpy async_tx xor raid1 raid0 multipath linear md_mod sg sd_mod sr_mod cdrom generic piix ahci ide_core ata_generic usb_storage usbhid hid ohci1394 ieee1394 ata_piix firewire_ohci firewire_core pata_acpi crc_itu_t floppy libata ehci_hcd scsi_mod uhci_hcd usbcore thermal processor fan

Pid: 11445, comm: modprobe Not tainted (2.6.24-rc3 #11)
BUG: using smp_processor_id() in preemptible [00000001] code: modprobe/11445
caller is __show_registers+0x9b/0x228
 [<c01094aa>] show_trace_log_lvl+0x1a/0x30
 [<c0109e71>] show_trace+0x12/0x14
 [<c0109f9f>] dump_stack+0x16/0x18
 [<c049a398>] debug_smp_processor_id+0xb8/0xbc
 [<c010633d>] __show_registers+0x9b/0x228
 [<c01095a5>] show_registers+0x1b/0x22d
 [<c01098f2>] die+0x13b/0x24d
 [<c05b612c>] do_page_fault+0x19c/0x7b0
 [<c05b496a>] error_code+0x72/0x78
 [<f918b70c>] dvb_pll_attach+0x273/0x2d3 [dvb_pll]
 [<f9158606>] cx8802_dvb_probe+0x4aa/0xfc3 [cx88_dvb]
 [<f91207b3>] cx8802_register_driver+0x14c/0x207 [cx8802]
 [<f915918d>] dvb_init+0x34/0x36 [cx88_dvb]
 [<c015a85b>] sys_init_module+0xf1/0x1a5d
 [<c01082ae>] sysenter_past_esp+0x6b/0xc1
 =======================
EIP: 0060:[<f8fae137>] EFLAGS: 00210282 CPU: 0
EIP is at i2c_transfer+0x17/0x134 [i2c_core]
EAX: 00000000 EBX: f918b499 ECX: 00000001 EDX: df8cd0b0
ESI: df8cd060 EDI: ddf5e000 EBP: efd4cdcc ESP: efd4cd80
 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process modprobe (pid: 11445, ti=efd4c000 task=ede28000 task.ti=efd4c000)
Stack: ffffffff c082d438 00000000 c06972ec 00000000 efd4cd94 efd4cd94 efd4cdb8 
       df8cd060 f918bb04 00000001 efd4cdf4 df8cd0b0 f9159731 f918dd00 efd4cdfc 
       f918b499 df8cd060 ddf5e000 efd4ce10 f918b70c 00000000 00000000 00000000 
Call Trace:
 [<c01094aa>] show_trace_log_lvl+0x1a/0x30
 [<c0109565>] show_stack_log_lvl+0xa5/0xca
 [<c010965a>] show_registers+0xd0/0x22d
 [<c01098f2>] die+0x13b/0x24d
 [<c05b612c>] do_page_fault+0x19c/0x7b0
 [<c05b496a>] error_code+0x72/0x78
 [<f918b70c>] dvb_pll_attach+0x273/0x2d3 [dvb_pll]
 [<f9158606>] cx8802_dvb_probe+0x4aa/0xfc3 [cx88_dvb]
 [<f91207b3>] cx8802_register_driver+0x14c/0x207 [cx8802]
 [<f915918d>] dvb_init+0x34/0x36 [cx88_dvb]
 [<c015a85b>] sys_init_module+0xf1/0x1a5d
 [<c01082ae>] sysenter_past_esp+0x6b/0xc1
 =======================
Code: 8b 53 08 0f b6 c0 e8 7d ff ff ff 0f b6 c0 83 c4 04 5b 5d c3 55 89 e5 57 56 53 83 ec 40 89 45 e4 89 55 e0 89 4d dc 89 c2 8b 40 0c <8b> 00 85 c0 0f 84 e2 00 00 00 85 c9 0f 8e a2 00 00 00 8b 45 e0 
EIP: [<f8fae137>] i2c_transfer+0x17/0x134 [i2c_core] SS:ESP 0068:efd4cd80
Comment 1 Andrew Morton 2007-11-24 19:25:20 UTC
So is this a regression?  Was 2.6.23 OK?

Thanks.
Comment 2 Brandon Ehle 2007-11-27 02:56:19 UTC
I didn't get the smp_processor_id() BUG in 2.6.23, but I do get the 
i2c_transfer error.


Linux video capture interface: v2.00
i2c-core: driver [tveeprom] registered
cx2388x cx88-mpeg Driver Manager version 0.0.6 loaded
CORE cx88[0]: subsystem: 7063:2000, board: pcHDTV HD3000 HDTV [card=22,insmod option]
TV tuner 60 at 0x1fe, Radio tuner -1 at 0x1fe
cx88[0]: SDA stuck high!
cx88[0]: i2c register FAILED
cx88[0]/2: cx2388x 8802 Driver Manager
ACPI: PCI Interrupt 0000:01:00.2[A] -> GSI 21 (level, low) -> IRQ 20
cx88[0]/2: found at 0000:01:00.2, rev: 5, irq: 20, latency: 32, mmio: 0x81000000
cx2388x dvb driver version 0.0.6 loaded
cx8802_register_driver() ->registering driver type=dvb access=shared
CORE cx88[0]: subsystem: 7063:2000, board: pcHDTV HD3000 HDTV [card=22]
cx88[0]/2: cx2388x based dvb card
BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
 printing eip:
f8f505b9
*pde = 00000000
Oops: 0000 [#1]
PREEMPT SMP DEBUG_PAGEALLOC
Modules linked in: dvb_pll cx88_dvb cx88_vp3054_i2c cx8802 video_buf_dvb cx88xx ir_common video_buf btcx_risc tveeprom videodev v4l2_common v4l1_compat or51132 dvb_core i2c_algo_bit i2c_core ufs binfmt_misc i915 drm rfcomm l2cap bluetooth tcp_diag inet_diag ppdev parport_pc lp parport ac battery speedstep_lib cpufreq_userspace cpufreq_stats cpufreq_powersave cpufreq_ondemand freq_table cpufreq_conservative ipv6 deflate zlib_deflate twofish twofish_common camellia serpent blowfish ecb aes xcbc sha256 sha1 crypto_null af_key dm_snapshot dm_mirror dm_mod sbp2 psmouse ide_generic ide_disk ide_cd irtty_sir sir_dev iTCO_wdt irda crc_ccitt rtc pcspkr button intel_agp agpgart evdev joydev raid10 raid456 async_xor async_memcpy async_tx xor raid1 raid0 multipath linear md_mod usbhid hid sg sd_mod sr_mod cdrom ahci generic piix ata_generic usb_storage ide_core ohci1394 ieee1394 ata_piix libata firewire_ohci firewire_core crc_itu_t r8169 ehci_hcd scsi_mod floppy uhci_hcd usbcore thermal processor fan
CPU:    0
EIP:    0060:[<f8f505b9>]    Not tainted VLI
EFLAGS: 00010282   (2.6.23 #1)
EIP is at i2c_transfer+0x17/0x134 [i2c_core]
eax: 00000000   ebx: f9070435   ecx: 00000001   edx: c56fe050
esi: c56fe000   edi: c56fe050   ebp: c7e50de0   esp: c7e50d94
ds: 007b   es: 007b   fs: 00d8  gs: 0033  ss: 0068
Process modprobe (pid: 13525, ti=c7e50000 task=d5bc0d50 task.ti=c7e50000)
Stack: 00000000 c7e50d98 c7e50d98 c7e50dbc c56fe000 f9070814 f906c759 c7e50dc4 
       c015537c f906c759 00000001 c7e50df8 c56fe050 c0155583 63617474 00000068 
       f9070435 c56fe000 c56fe050 c7e50e14 f9070543 f059baf8 00000061 f9071a80 
Call Trace:
 [<c010844a>] show_trace_log_lvl+0x1a/0x30
 [<c0108505>] show_stack_log_lvl+0xa5/0xca
 [<c010872a>] show_registers+0x200/0x35d
 [<c01089a8>] die+0x121/0x24d
 [<c05a3b63>] do_page_fault+0x193/0x6c0
 [<c05a23ba>] error_code+0x72/0x78
 [<f9070543>] dvb_pll_attach+0x10e/0x163 [dvb_pll]
 [<f906b616>] cx8802_dvb_probe+0x4ba/0xfd3 [cx88_dvb]
 [<f90657c5>] cx8802_register_driver+0x17d/0x235 [cx8802]
 [<f906c19d>] dvb_init+0x34/0x36 [cx88_dvb]
 [<c0155e7a>] sys_init_module+0xef/0x18b4
 [<c010727e>] sysenter_past_esp+0x6b/0xb5
 =======================
Code: c8 fa 64 c7 89 f0 5b 5e 5f 5d c3 e8 2b eb 64 c7 66 90 eb dc 55 89 e5 57 56 53 83 ec 40 89 45 e4 89 55 e0 89 4d dc 89 c2 8b 40 0c <8b> 00 85 c0 0f 84 e2 00 00 00 85 c9 0f 8e a2 00 00 00 8b 45 e0 
EIP: [<f8f505b9>] i2c_transfer+0x17/0x134 [i2c_core] SS:ESP 0068:c7e50d94
Comment 3 Mauro Carvalho Chehab 2008-01-07 05:55:12 UTC
The bug arise only when debug is enabled?

If so, could you test against the latest development tree, at:
    http://linuxtv.org/hg/v4l-dvb
Comment 4 firewalkergr 2008-01-10 01:04:34 UTC
Created attachment 14395 [details]
Oops cx88-dvb
Comment 5 firewalkergr 2008-01-10 01:05:08 UTC
I get the same oops with 2.6.23.9, debug disabled and the latest (well 2 days old)
  http://linuxtv.org/hg/v4l-dvb

I have a HVR -1300.

Sometimes it works though :

1) Reboot - it works (both analog and dvb)

2) Reboot - cx88 - SDA stuck high and loading cx88-dvb generates an oops (see below)

3) Reboot - no error messages or oops but tuner doesn't work (stuck in one channel or black screen at analog). Cannot tune dvb either.

4) Go to step 1.

uname -a
Linux anarchos 2.6.23.9-85.fc8 #1 SMP Fri Dec 7 15:49:59 EST 2007 i686 i686 i386 GNU/Linux

n modprobe.d/hvr1300.conf :

options i2c-algo-bit bit_test=1
# made it work for a while...
options tuner pal=b
options ir-kbd-i2c hauppauge=1
# made it work for a while...
install cx88xx /sbin/modprobe tuner; /sbin/modprobe --ignore-install cx88xx
# to avoid oops at boot up
install cx88-dvb /bin/true



cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.6 loaded
cx88[0]: subsystem: 0070:9601, board: Hauppauge WinTV-HVR1300 DVB-T/Hybrid MPEG Encoder [card=56,autodetected]
cx88[0]: TV tuner type 63, Radio tuner type -1
cx2388x alsa driver version 0.0.6 loaded
cx88/0: cx2388x v4l2 driver version 0.0.6 loaded
cx88[0]: SDA stuck high!
cx88[0]: i2c register FAILED
...
cx88[0]/2: cx2388x based DVB/ATSC card
BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip: f887818f *pde = 3b3e2067
Oops: 0000 [#1] SMP
Modules linked in: cx22702(U) cx88_dvb(U) ir_kbd_i2c(U) kqemu(U) autofs4 sunrpc dm_mirror dm_mod snd_emu10k1_synth snd_emux_synth snd_seq_virmidi snd_seq_midi_emul
 snd_emu10k1 snd_rawmidi snd_ac97_codec ac97_bus cx88_blackbird(U) cx2341x(U) snd_seq_dummy cx88_vp3054_i2c(U) wm8775(U) videobuf_dvb(U) dvb_core(U) snd_seq_oss sn
d_seq_midi_event snd_seq cx8800(U) cx88_alsa(U) cx8802(U) cx88xx(U) snd_pcm_oss tuner(U) tea5767(U) tda8290(U) tda18271(U) snd_mixer_oss tda827x(U) tuner_xc2028(U)
 tda9887(U) snd_pcm tuner_simple(U) mt20xx(U) tea5761(U) snd_seq_device snd_timer ir_common(U) i2c_algo_bit compat_ioctl32(U) snd_page_alloc b44 tveeprom(U) videod
ev(U) v4l2_common(U) snd_util_mem v4l1_compat(U) videobuf_dma_sg(U) ssb snd_hwdep emu10k1_gp videobuf_core(U) btcx_risc(U) snd gameport mii soundcore button i2c_i801 i2c_core iTCO_wdt iTCO_vendor_support floppy sg sr_mod cdrom ata_generic ata_piix libata sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd
CPU:    0
EIP:    0060:[<f887818f>]    Not tainted VLI
EFLAGS: 00010296   (2.6.23.9-85.fc8 #1)
EIP is at i2c_transfer+0x16/0x42 [i2c_core]
eax: 00000000   ebx: ffffffda   ecx: 00000002   edx: f664ae30
esi: f8bfe886   edi: f7710050   ebp: 00000002   esp: f664ae0c
ds: 007b   es: 007b   fs: 00d8  gs: 0033  ss: 0068
Process modprobe (pid: 2553, ti=f664a000 task=f64ad230 task.ti=f664a000)
Stack: f664ae30 f75b6400 f8bfe886 f7710050 f7710000 f8aa706d f647d8b4 c0449043
       f7710804 00000063 f6640001 f664ae4b 00010063 f8bf0001 f664ae4a 1f000000
       f8aa773c 00000000 f7710800 f647d8b4 f8bfc3b4 f8bfd5eb 00000001 00000002
Call Trace:
 [<f8aa706d>] cx22702_readreg+0x59/0x7f [cx22702]
 [<c0449043>] __find_symbol+0x115/0x1ea
 [<f8aa773c>] cx22702_attach+0x32/0x5e [cx22702]
 [<f8bfc3b4>] cx8802_dvb_probe+0x295/0xeb9 [cx88_dvb]
 [<f8a2a42a>] cx8802_register_driver+0x126/0x1df [cx8802]
 [<c044ab86>] sys_init_module+0x150d/0x1651
 [<c0620652>] do_page_fault+0x2c0/0x5ef
 [<f8a640c4>] vp3054_i2c_probe+0x0/0x101 [cx88_vp3054_i2c]
 [<c040518a>] syscall_call+0x7/0xb
 =======================
Code: 8d 83 4c 01 00 00 e8 e0 e4 c7 c7 85 c0 0f 94 c0 0f b6 c0 5b c3 55 89 cd 57 89 c7 56 53 bb da ff ff ff 83 ec 04 89 14 24 8b 40 0c <83> 38 00 74 1f 8d 77 20 89 f0 e8 a3 5f da c7 8b 5f 0c 89 e9 89
EIP: [<f887818f>] i2c_transfer+0x16/0x42 [i2c_core] SS:ESP 0068:f664ae0c


See attached dmesg
Comment 6 Brandon Ehle 2008-04-13 22:29:23 UTC
Running with 2.6.25-rc9 and v4l-d4b from changeset 7537 I get the following message, after which point the kernel locks up and only responds to sys-rq keys.  Originally the kernel would post an oops and continue, it now locks hard.

Same commands issued as the original post.

modprobe -v i2c-algo-bit bit_test=1 i2c_debug=3
modprobe -v or51132 debug=1
modprobe -v cx88xx card=22
modprobe -v cx88-dvb


i2c-core: driver [dummy] registered
i2c-core: driver [tveeprom] registered
Linux video capture interface: v2.00
cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.6 loaded
cx88[0]: subsystem: 7063:3000, board: pcHDTV HD3000 HDTV [card=22,autodetected]
cx88[0]: TV tuner type 60, Radio tuner type -1
cx88[0]: SDA stuck high!
cx88[0]: i2c register FAILED
i2c-core: driver [tuner'] registered
i2c-core: driver [tuner] registered
cx88[0]/2: cx2388x 8802 Driver Manager
ACPI: PCI Interrupt 0000:02:00.2[A] -> GSI 21 (level, low) -> IRQ 21
cx88[0]/2: found at 0000:02:00.2, rev: 5, irq: 21, latency: 32, mmio: 0xd4000000
cx88/2: cx2388x dvb driver version 0.0.6 loaded
cx88/2: registering cx8802 driver, type: dvb access: shared
cx88[0]/2: subsystem: 7063:3000, board: pcHDTV HD3000 HDTV [card=22]
cx88[0]/2: cx2388x based DVB/ATSC card
BUG: unable to handle kernel NULL pointer dereference at 00000000
IP: [<f8ea138e>] :i2c_core:i2c_transfer+0x14/0x15c
*pde = 00000000
Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
Modules linked in: dvb_pll cx88_dvb(+) cx88_vp3054_i2c tuner tea5767 tda8290 tda18271 tda827x tuner_xc2028 xc5000 tda9887 tuner_simple mt20xx tea5761 v4l2_common cx8802 videobuf_dvb cx88xx videodev ir_common videobuf_dma_sg tveeprom or51132 usb_storage sg sd_mod crc_itu_t scsi_mod
Comment 7 Mauro Carvalho Chehab 2008-04-15 09:53:01 UTC
It seems to be a sequence of troubles:

1) I2C bus is hanging. This is what that "SDA high" message means. Seems to be a hardware problem. Something is making the hard so unstable that it stops working.

2) cx22702 can't read from I2C, due to the bus hang;

3) some problem at cx88-dvb register routine didn't interpret the error. I think this bug were solved, at the tree, for a patch later than changeset 7537.

The root cause is the bus hang. Maybe you are loading a broken firmware, that made the demod to hang, keeping the I2C bus in use.
Comment 8 firewalkergr 2008-04-16 02:36:12 UTC
In my case sometimes it boots fine but sometimes it doesn't (SDA high & oops or just the tuner doesn't work)

Loading the modules manually in a specific order seems to make it "work" most of the time.

modprobe tuner
modprobe -i cx88xx
modprobe -i cx8800
modprobe -i cx8802
modprobe -i cx88-alsa

cat /etc/modprobe.d/hvr1300.conf 
options i2c-algo-bit bit_test=1
options tuner pal=b
options ir-kbd-i2c hauppauge=1
install cx88-dvb /bin/true
install cx88xx /bin/true
install cx8800 /bin/true
install cx8802 /bin/true
install cx88-alsa /bin/true
Comment 9 Alan 2012-05-17 15:11:45 UTC
Closing obsolete bug. If this is incorrect please re-open and update the version to a modern kernel