[linux-dvb] [PATCH] Twinhan...oops

Manu Abraham manu at kromtek.com
Wed Feb 23 12:52:20 CET 2005


Martin Cap wrote:
> Hi everybody, Hi Manu,
> 
> I tried your patchset for Twinhan-based DVB-cards, but they give me 
> kernel-oops.
> 
> The card I have is a Twinhan-clone dvb-t card, named "Hama DVB-T PCI 
> Card" (it's an exact clone of Twinhan cards) and I use the CVS 
> dvb-kernel tree dated Feb. 17th 2005, kernel is 2.6.10. Applying your 
> patchset and compiling was successfull.
> 
> So after loading the corresponding drivers namely these here,
> "     dvb-core
>    bttv i2c_hw=1 card=0x71
>    dvb-bt8xx
>    dst"
> 
> I get the following output from dmesg (which is still fine, besides the 
> last line!):
> 
> "Linux video capture interface: v1.00
> bttv: driver version 0.9.15 loaded
> bttv: using 8 buffers with 2080k (520 pages) each for capture
> bttv: Host bridge needs ETBF enabled.
> bttv: Bt8xx card found (0).
> PCI: Enabling device 0000:00:12.0 (0100 -> 0102)
> PCI: Found IRQ 5 for device 0000:00:12.0
> PCI: Sharing IRQ 5 with 0000:00:12.1
> bttv0: Bt878 (rev 17) at 0000:00:12.0, irq: 5, latency: 64, mmio: 
> 0xf4102000
> bttv0: detected: Twinhan VisionPlus DVB-T [card=113], PCI subsystem ID 
> is 1822:0001
> bttv0: using: Twinhan DST + clones [card=113,insmod option]
> bttv0: enabling ETBF (430FX/VP3 compatibilty)

Which motherboard are you having ?

> bttv0: gpio: en=00000000, out=00000000 in=00fb90fe [init]
> bttv0: using tuner=4
> bttv0: add subdevice "dvb0"
> bt878: AUDIO driver version 0.0.0 loaded
> bt878: Bt878 AUDIO function found (0).
> PCI: Enabling device 0000:00:12.1 (0100 -> 0102)
> PCI: Found IRQ 5 for device 0000:00:12.1
> PCI: Sharing IRQ 5 with 0000:00:12.0
> bt878(0): Bt878 (rev 17) at 00:12.1, irq: 5, latency: 64, memory: 
> 0xf4103000
> DVB: registering new adapter (bttv0).
> DVB: registering frontend 0 (<NULL>)..."
> 

Can you please load the modules with the debug and verbose options ?


> This is the point where I start an dvb-application eg. vdr or femon, 
> dmesg then gives me the kernel oops:
> 
> "Unable to handle kernel NULL pointer dereference at virtual address 
> 000001ec
> printing eip:
> ccb1eb13
> *pde = 00000000
> Oops: 0000 [#1]
> PREEMPT SMP
> Modules linked in: dvb_bt8xx nxt6000 mt352 sp887x dst_ca dst bt878 
> cx24110 or51211 tuner bttv video_buf firmware_class v4l2_common 
> btcx_risc videodev dvb_core ipv6 thermal fan button processor ac battery 
> em8300 i2c_algo_bit soundcore adv717x i2c_core tsdev mousedev 3c59x 
> joydev usbhid usbkbd evdev uhci_hcd usbcore genrtc unix xfs ide_generic 
> ide_disk piix ide_core
> CPU:    0
> EIP:    0060:[<ccb1eb13>]    Not tainted VLI
> EFLAGS: 00010286   (2.6.10)
> EIP is at dvb_frontend_ioctl+0x46/0x4a3 [dvb_core]
> eax: 00000000   ebx: ca4d3900   ecx: 80a86f3d   edx: 00000000
> esi: ffffffa1   edi: 80a86f3d   ebp: c9368da0   esp: c961fe98
> ds: 007b   es: 007b   ss: 0068
> Process femon (pid: 3076, threadinfo=c961e000 task=cbee7ae0)
> Stack: 00000000 caee3420 cad3daf8 00000000 c117a620 c013bb52 00000000 
> c124cd94
>       b7f80bc0 cad3daf8 cb733940 00000001 cb733940 c9368da0 80a86f3d 
> fffffff2
>       c9368da0 bffff990 ccb186f8 c9368da0 c9368da0 caee3420 cb0e5910 
> b7f80bc0
> Call Trace:
> [<c013bb52>] do_no_page+0x27f/0x2bf
> [<ccb186f8>] dvb_usercopy+0x99/0xf3 [dvb_core]
> [<c0112946>] do_page_fault+0x187/0x4ce
> [<c014e34c>] chrdev_open+0x160/0x176
> [<c01467d6>] dentry_open+0x11e/0x1e8
> [<c01466b2>] filp_open+0x36/0x3c
> [<ccb182a5>] dvb_generic_ioctl+0x2f/0x38 [dvb_core]
> [<ccb1eacd>] dvb_frontend_ioctl+0x0/0x4a3 [dvb_core]
> [<c0155c37>] sys_ioctl+0x1e0/0x1fd
> [<c0102b57>] syscall_call+0x7/0xb
> Code: 00 83 3d 90 a3 b2 cc 00 8b 58 28 8b 43 0c 89 04 24 74 11 68 aa 17 
> b2 cc 68 45 1b b2 cc e8 a7 9e 5f f3 58 5a 85 db 74 0c 8b 14 24 <83> ba 
> ec 01 00 00 00 74 0a b8 ed ff ff ff e9 42 04 00 00 8b 44"
> 
> The application I started here was 'femon', as you can see. 'femon' 
> itself gives me a segfault.
> 

The problem occured since no frontend was registered.

> If you need more verbose output, please tell me.
> 

Really require that to see what happened during dst_probe..

Manu





More information about the linux-dvb mailing list