[linux-dvb] [PATCH] Twinhan

Stefan Becker Schtefan at gmx.net
Thu Feb 24 16:29:28 CET 2005


Hi Manu,

I applied your latest patches on dvb-kernel cvs of Feb 24th:
---
# patch -p5 <patch-17-Feb-05-Twinhan/17-Feb-05-Twinhan-1.diff
patching file dvb-kernel/linux/drivers/media/dvb/bt8xx/bt878.c
patching file dvb-kernel/linux/drivers/media/dvb/bt8xx/bt878.h
patching file dvb-kernel/linux/drivers/media/dvb/bt8xx/dst.c
patching file dvb-kernel/linux/drivers/media/dvb/bt8xx/dst_priv.h
patching file dvb-kernel/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c
Hunk #6 succeeded at 420 (offset 14 lines).
Hunk #7 succeeded at 463 (offset 14 lines).
Hunk #8 succeeded at 626 (offset 21 lines).
Hunk #9 succeeded at 773 (offset 27 lines).
patching file dvb-kernel/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.h
Hunk #1 succeeded at 31 with fuzz 1.
patching file dvb-kernel/linux/drivers/media/dvb/bt8xx/Makefile
# patch -p5 <patch-17-Feb-05-Twinhan/17-Feb-05-Twinhan-Diseqc-2.diff
patching file dvb-kernel/linux/drivers/media/dvb/bt8xx/dst.c
patching file dvb-kernel/linux/drivers/media/dvb/bt8xx/dst_common.h
---
I used makelinks on my kernel (2.6.10-gentoo-r6, kernel.org's 
2.6.11-rc5-patch seems to be broken right now)
gcc 3.4.3 20050110 (Gentoo)
On "make modules" (gcc 3.4.3 20050110) I got one warning:
  CC [M]  drivers/media/dvb/bt8xx/dst.o
drivers/media/dvb/bt8xx/dst.c:1325: Warnung: Initialisierung von 
inkompatiblem Zeigertyp

(incompatible pointer type) which is:
    .diseqc_send_burst = dst_set_tone,
in "static struct dvb_frontend_ops dst_dvbs_ops"

---------------------------------
btw: I needed to change that:
--- drivers/media/dvb/frontends/or51211.h-orig 2005-02-24 
15:41:44.104610672 +0100
+++ drivers/media/dvb/frontends/or51211.h      2005-02-24 
15:41:56.264762048 +0100
@@ -24,7 +24,7 @@

 #include <linux/dvb/frontend.h>
 #include <linux/firmware.h>
-#include "bt878.h"
+#include "../bt8xx/bt878.h"

 struct or51211_config
 {
--- drivers/media/dvb/bt8xx/bt878.h-orig 2005-02-24 15:43:43.765419464 +0100
+++ drivers/media/dvb/bt8xx/bt878.h      2005-02-24 15:44:00.388892312 +0100
@@ -25,8 +25,8 @@
 #include <linux/pci.h>
 #include <linux/sched.h>
 #include <linux/spinlock.h>
-#include "bt848.h"
-#include "bttv.h"
+#include "../../video/bt848.h"
+#include "../../video/bttv.h"

 #define BT878_VERSION_CODE 0x000000
---------------------------------

otherwise it compiled fine.
---
# modprobe bttv i2c_hw=1 card=0x71
# modprobe dst dst_verbose=1 dst_debug=1
# modprobe dvb_bt8xx debug=1
Speicherzugriffsfehler
---
(segmentation fault?)

the modules are stuck now - cant rmmod them anymore. I only got demux0, 
dvr0 and net0 - no frontend0. Without the patches i can tune my card (VP 
1022A) only occasionally, best chance after a reboot. And then I only 
get a few channels, most frequencies wont lock. Under Windows the card 
behaves similar btw, but with careful use of Progdvb (not the software 
that came with the box!) all channels work.

-Stefan

dmesg:
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).
ACPI: PCI interrupt 0000:00:10.0[A] -> GSI 9 (level, low) -> IRQ 9
bttv0: Bt878 (rev 17) at 0000:00:10.0, irq: 9, latency: 132, mmio: 
0xe8002000
bttv0: detected: Twinhan VisionPlus DVB [card=113], PCI subsystem ID is 
1822:0001
bttv0: using: Twinhan DST + clones [card=113,insmod option]
bttv0: enabling ETBF (430FX/VP3 compatibilty)
bttv0: gpio: en=00000000, out=00000000 in=00f5ffff [init]
bttv0: using tuner=4
bttv0: add subdevice "dvb0"
bt878: AUDIO driver version 0.0.0 loaded
bt878: Bt878 AUDIO function found (0).
ACPI: PCI interrupt 0000:00:10.1[A] -> GSI 9 (level, low) -> IRQ 9
bt878(0): Bt878 (rev 17) at 00:10.1, irq: 9, latency: 64, memory: 0xe8003000
dvb_bt8xx: identified card0 as bttv0
DVB: registering new adapter (bttv0).
rdc_8820_reset: Resetting DST
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0000]
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0004]
dst_comm_init: Initializing DST..
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
write_dst writing 00 06 00 00 00 00 00 fa
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst reply is 0xff
dst_wait_dst_ready: dst wait ready after 0
read_dst: read_dst error (err == -5, len == 0x08, b0 == 0x00)
dst_error_recovery: Trying to recover from previous errors...
rdc_8820_reset: Resetting DST
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0000]
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0004]
dst_comm_init: Initializing DST..
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: read_dst error (err == -5, len == 0x08, b0 == 0x00)
dst_error_recovery: Trying to recover from previous errors...
rdc_8820_reset: Resetting DST
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0000]
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0004]
dst_comm_init: Initializing DST..
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: read_dst error (err == -5, len == 0x08, b0 == 0x00)
dst_error_recovery: Trying to recover from previous errors...
rdc_8820_reset: Resetting DST
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0000]
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0004]
dst_comm_init: Initializing DST..
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: read_dst error (err == -5, len == 0x08, b0 == 0x00)
dst_error_recovery: Trying to recover from previous errors...
rdc_8820_reset: Resetting DST
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0000]
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0004]
dst_comm_init: Initializing DST..
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
dst_error_recovery: Trying to recover from previous errors...
rdc_8820_reset: Resetting DST
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0000]
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0004]
dst_comm_init: Initializing DST..
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
dst_get_device_id: Trying to recover..
Unable to handle kernel NULL pointer dereference at virtual address 00000000
 printing eip:
d10130dc
*pde = 00000000
Oops: 0000 [#1]
PREEMPT
Modules linked in: dvb_bt8xx nxt6000 mt352 sp887x dst_ca dvb_core 
cx24110 or51211 dst bt878 tuner bttv video_buf firmware_class 
i2c_algo_bit v4l2_common btcx_risc i2c_core videodev lirc_dev rtc pcspkr 
nvidia emu10k1 ac97_codec
CPU:    0
EIP:    0060:[<d10130dc>]    Tainted: P      VLI
EFLAGS: 00010286   (2.6.10-gentoo-r6)
EIP is at dst_get_device_id+0x13c/0x390 [dst]
eax: 00000000   ebx: 00000000   ecx: ffffffff   edx: ffffffff
esi: c581a124   edi: 00000000   ebp: d1015f58   esp: c9e37e48
ds: 007b   es: 007b   ss: 0068
Process modprobe (pid: 10222, threadinfo=c9e36000 task=c92b75e0)
Stack: c581a124 00000007 00000008 0000000a 00000000 c581a124 00000002 
0000000e
       ff81a000 c581a000 ccc7dc00 00000000 ccc7de80 d1013364 c581a000 
00000007
       c581a000 d10141fb c581a000 00000000 d106946e 00000000 d1069466 
00000292
Call Trace:
 [<d1013364>] dst_probe+0x34/0xb0 [dst]
 [<d10141fb>] dst_attach+0x1b/0xb0 [dst]
 [<d1018a82>] frontend_init+0x192/0x200 [dvb_bt8xx]
 [<d1018000>] dvb_bt8xx_task+0x0/0x80 [dvb_bt8xx]
 [<d101f1f1>] dvb_bt8xx_load_card+0x191/0x280 [dvb_bt8xx]
 [<d1018c39>] dvb_bt8xx_probe+0x149/0x270 [dvb_bt8xx]
 [<c029f6df>] driver_probe_device+0x2f/0x80
 [<c029f822>] driver_attach+0x52/0xa0
 [<c029fda9>] bus_add_driver+0x99/0xe0
 [<c02a040f>] driver_register+0x2f/0x40
 [<d101f2f8>] dvb_bt8xx_init+0x18/0x1c [dvb_bt8xx]
 [<c012f3e7>] sys_init_module+0x167/0x230
 [<c010311f>] syscall_call+0x7/0xb
Code: c6 87 2b 01 00 00 00 89 44 24 1c 8d 74 26 00 8b 45 04 89 d1 8b 74 
24 38 01 c6 8b 45 00 81 c6 24 01 00 00 89 44 24 10 89 c7 89 d8 <f2> ae 
f7 d1 49 8b 7c 24 10 49 78 08 ac ae 75 08 84 c0 75 f5 31
 





More information about the linux-dvb mailing list