[linux-dvb] New DigiTV USB firmware works but....
Patrick Boettcher
patrick.boettcher at desy.de
Fri Dec 16 14:39:24 CET 2005
Hi,
Can you please try the attached patch and tell me if it fixes your
segfault?
On Wed, 14 Dec 2005, Fraser White wrote:
> Hi Guy,
> Nice work patrick, the firmware now loads, however now I have new problems.
> The fernel module still isn't loading properly. See the syslog snippet
> below....
>
>
> Dec 14 01:08:19 localhost kernel: usb 1-1: new high speed USB device using
> ehci_hcd and address 3
> Dec 14 01:08:20 localhost kernel: dvb-usb: found a 'Nebula Electronics
> uDigiTV DVB-T USB2.0)' in cold state, will try to load a firmware
> Dec 14 01:08:20 localhost kernel: dvb-usb: downloading firmware from file
> 'dvb-usb-digitv-02.fw'
> Dec 14 01:08:20 localhost kernel: Unable to handle kernel NULL pointer
> dereference at virtual address 000002d2
> Dec 14 01:08:20 localhost kernel: printing eip:
> Dec 14 01:08:20 localhost kernel: d0c73816
> Dec 14 01:08:20 localhost kernel: *pde = 062ce067
> Dec 14 01:08:20 localhost kernel: Oops: 0000 [#1]
> Dec 14 01:08:20 localhost kernel: Modules linked in: dvb_usb_digitv(U)
> nxt6000(U) mt352(U) dvb_usb(U) dvb_core(U) dvb_pll(U) smbfs parport_pc lp
> parport autofs4 rfcomm l2cap bluetooth sunrpc ipt_REJECT ipt_state
> ip_conntrack nfnetlink iptable_filter ip_tables video button battery ac ipv6
> ohci1394 ieee1394 ohci_hcd ehci_hcd i2c_nforce2 i2c_core shpchp emu10k1_gp
> gameport snd_emu10k1_synth snd_emux_synth snd_seq_virmidi snd_seq_midi_emul
> snd_emu10k1 snd_rawmidi snd_ac97_codec snd_seq_dummy snd_seq_oss
> snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm
> snd_timer snd_ac97_bus snd_page_alloc snd_util_mem snd_hwdep snd soundcore
> sk98lin floppy dm_snapshot dm_zero dm_mirror ext3 jbd dm_mod sata_nv libata
> sd_mod scsi_mod
> Dec 14 01:08:20 localhost kernel: CPU: 0
> Dec 14 01:08:20 localhost kernel: EIP: 0060:[<d0c73816>] Not tainted
> VLI
> Dec 14 01:08:20 localhost kernel: EFLAGS: 00010292 (2.6.14-1.1644_FC4)
> Dec 14 01:08:20 localhost kernel: EIP is at dvb_usb_generic_rw+0x16/0x184
> [dvb_usb]
> Dec 14 01:08:20 localhost kernel: eax: 00000000 ebx: 00000266 ecx:
> 00000007 edx: c5efcebd
> Dec 14 01:08:20 localhost kernel: esi: 00000007 edi: c5efcec4 ebp:
> c5efcebd esp: c5efce58
> Dec 14 01:08:20 localhost kernel: ds: 007b es: 007b ss: 0068
> Dec 14 01:08:20 localhost usb.agent[7525]: ... can't load module
> dvb-usb-digitv
> Dec 14 01:08:20 localhost kernel: Process modprobe (pid: 7546,
> threadinfo=c5efc000 task=c6b4b570)
> Dec 14 01:08:20 localhost usb.agent[7525]: missing kernel or user mode driver
> dvb-usb-digitv
> Dec 14 01:08:20 localhost kernel: Stack: 00000000 00000000 000000ff 00000286
> 0000d8a0 00000286 00000000 00000000
> Dec 14 01:08:20 localhost kernel: c5efceec c5efcec4 00000000 d0c739a6
> 00000000 00000000 00000000 d0c62098
> Dec 14 01:08:20 localhost kernel: fffffff4 c03883a0 d0c73749 00000000
> 00000266 c5efcec8 d0c63a00 00008600
> Dec 14 01:08:20 localhost kernel: Call Trace:
> Dec 14 01:08:20 localhost kernel: [<d0c739a6>]
> dvb_usb_generic_write+0x22/0x26 [dvb_usb]
> Dec 14 01:08:20 localhost kernel: [<d0c62098>] digitv_ctrl_msg+0x98/0xef
> [dvb_usb_digitv]
> Dec 14 01:08:20 localhost kernel: [<d0c73749>]
> dvb_usb_device_init+0x159/0x1bb [dvb_usb]
> Dec 14 01:08:21 localhost kernel: [<d0c62401>] digitv_probe+0x5d/0x95
> [dvb_usb_digitv]
> Dec 14 01:08:21 localhost kernel: [<c0276f9f>] usb_probe_interface+0x4c/0x5e
> Dec 14 01:08:21 localhost kernel: [<c023a8cd>] driver_probe_device+0x35/0x9e
> Dec 14 01:08:21 localhost kernel: [<c023a9f2>] __driver_attach+0x4a/0x4c
> Dec 14 01:08:21 localhost kernel: [<c023a164>] bus_for_each_dev+0x3d/0x5b
> Dec 14 01:08:21 localhost kernel: [<c023aa0a>] driver_attach+0x16/0x1a
> Dec 14 01:08:21 localhost kernel: [<c023a9a8>] __driver_attach+0x0/0x4c
> Dec 14 01:08:21 localhost kernel: [<c023a51f>] bus_add_driver+0x63/0xa9
> Dec 14 01:08:21 localhost kernel: [<c0277065>] usb_register+0x54/0xb0
> Dec 14 01:08:21 localhost kernel: [<d0c65000>] digitv_module_init+0x0/0x2b
> [dvb_usb_digitv]
> Dec 14 01:08:21 localhost kernel: [<d0c6500e>] digitv_module_init+0xe/0x2b
> [dvb_usb_digitv]
> Dec 14 01:08:21 localhost kernel: [<c01344bf>] sys_init_module+0xc5/0x1c9
> Dec 14 01:08:21 localhost kernel: [<c0102edd>] syscall_call+0x7/0xb
> Dec 14 01:08:21 localhost kernel: Code: 7a 4a ef 83 c4 08 5b c3 90 90 90 90
> 90 90 90 90 90 90 90 90 90 55 57 56 53 83 ec 1c 89 c3 89 d5 89 ce 8b 44 24 34
> 66 89 44 24 12 <8b> 4b 6c 85 c9 0f 84 ab 00 00 00 85 d2 74 05 66 85 f6 75 0f
> bf
>
>
>
>
>
> _______________________________________________
> linux-dvb mailing list
> linux-dvb at linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
>
Patrick.
--
Mail: patrick.boettcher at desy.de
WWW: http://www.wi-bw.tfh-wildau.de/~pboettch/
-------------- next part --------------
Index: linux/drivers/media/dvb/dvb-usb/digitv.c
===================================================================
RCS file: /cvs/video4linux/v4l-dvb/linux/drivers/media/dvb/dvb-usb/digitv.c,v
retrieving revision 1.13
diff -u -3 -p -r1.13 digitv.c
--- linux/drivers/media/dvb/dvb-usb/digitv.c 20 Nov 2005 02:05:41 -0000 1.13
+++ linux/drivers/media/dvb/dvb-usb/digitv.c 16 Dec 2005 13:33:10 -0000
@@ -175,11 +175,13 @@ static int digitv_probe(struct usb_inter
if ((ret = dvb_usb_device_init(intf,&digitv_properties,THIS_MODULE,&d)) == 0) {
u8 b[4] = { 0 };
- b[0] = 1;
- digitv_ctrl_msg(d,USB_WRITE_REMOTE_TYPE,0,b,4,NULL,0);
+ if (d != NULL) { /* do that only when the firmware is loaded */
+ b[0] = 1;
+ digitv_ctrl_msg(d,USB_WRITE_REMOTE_TYPE,0,b,4,NULL,0);
- b[0] = 0;
- digitv_ctrl_msg(d,USB_WRITE_REMOTE,0,b,4,NULL,0);
+ b[0] = 0;
+ digitv_ctrl_msg(d,USB_WRITE_REMOTE,0,b,4,NULL,0);
+ }
}
return ret;
}
@@ -194,7 +196,7 @@ static struct dvb_usb_properties digitv_
.caps = DVB_USB_IS_AN_I2C_ADAPTER,
.usb_ctrl = CYPRESS_FX2,
- .firmware = "dvb-usb-digitv-01.fw",
+ .firmware = "dvb-usb-digitv-02.fw",
.size_of_priv = 0,
More information about the linux-dvb
mailing list