I am still getting the hang of this code, so it's very very possible that I am missing something basic here. I don't think the problem is in the request_aquire function. In fact that doesn't even appear to be every called. The DVB driver registered correctly with the cx88-mpeg driver ( cx8802_register_driver). That driver registers with the pci_driver. That PCI probe doesn't appear to be actually called. When cx8802_register_driver starts looping through devices (after the dvb driver is registered), it doesn't find any devices at all. The devlist should be (if I read the code correctly) populated by the cx8802_probe function. As a quick test, I added the following lines to the pci_register_driver to see what the system actually sees in the PCI tables: /* .vendor = 0x14f1, .device = 0x8802, */ dev = pci_find_device(0x14f1, 0x8802, dev); if (dev==NULL) printk(KERN_ERR "%s() did not find any devices during the probe()\n",__FUNCTION__); else printk(KERN_ERR "%s() found device",__FUNCTION__); and sure enough it doesn't find anything. Here is the lspci -v and lspci -nv 05:00.0 Multimedia video controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder (rev 05) Subsystem: pcHDTV pcHDTV HD3000 HDTV 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 (5000ns min, 13750ns max), Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 21 Region 0: Memory at f6000000 (32-bit, non-prefetchable) [size=16M] Capabilities: [44] Vital Product Data Capabilities: [4c] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 05:00.4 Multimedia controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (rev 05) Subsystem: pcHDTV Unknown device 3000 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 (1500ns min, 63750ns max), Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 10 Region 0: Memory at f7000000 (32-bit, non-prefetchable) [size=16M] Capabilities: [4c] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 05:00.0 0400: 14f1:8800 (rev 05) Subsystem: 7063:3000 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 (5000ns min, 13750ns max), Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 21 Region 0: Memory at f6000000 (32-bit, non-prefetchable) [size=16M] Capabilities: [44] Vital Product Data Capabilities: [4c] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 05:00.4 0480: 14f1:8804 (rev 05) Subsystem: 7063:3000 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 (1500ns min, 63750ns max), Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 10 Region 0: Memory at f7000000 (32-bit, non-prefetchable) [size=16M] Capabilities: [4c] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- I am a kernel novice, so I might have missed something very basic here. On 10/15/06, Steven Toth <stoth@xxxxxxxxxxxxx> wrote:
> No cx88-dvb is loaded. When I try to load it: > > mediacore:~> sudo /sbin/modprobe cx88-dvb > FATAL: Error inserting cx88_dvb > (/lib/modules/2.6.19-rc1-mm1conroe/kernel/drivers/media/video/cx88/cx88-dvb.ko): > No such device > > I have tried using the head version of DVB, and updating the kernel to > the newest -mm patch, with no luck at all. Any ideas on how to debug > this or fix this problem? > We added patches a few weeks ago to avoid issues like this. Take a look at the cx88_mpeg_request_acquire function. It calls drv->probe (which translates into cx88_dvb_advise_acquire). For some reason the probe fails and the request_acquire function ejects the driver. I'd do more testing today but time is short, I won't get to this until late this evening or tomorrow. Feel free to take a loot and/or post any patches to the list. Steve
_______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb