[Prism54-devel] prism54-usb w/ 2.6.6

Rob Hill rob@dot.net.au
Mon, 17 May 2004 14:10:15 +1000


Hi, 

I've been trying to get prism54-usb working with the 2.6.6 and my D-Link
DWL-G120 with mixed results.

I'm running Debian Sarge, on a Via M10000 mobo, 512M RAM yadda yadda
yadda

Hotplug is installed.

I've compiled the above source on 2.6.6, and added the vendor id for the
G120 to usb_init.c: 

{USB_DEVICE(0x2001, 0x3701)}, /* D-Link G120 */

The kernel registers the device properly when I plug it in, see the logs
below. I've loaded the module with debug=1:


May 16 20:54:58 rubix kernel: usbcore: registered new driver prism54_usb
May 16 20:55:19 rubix kernel: usb 2-2: new full speed USB device using address 3
May 16 20:55:20 rubix kernel: usb 2-2: device not accepting address 3, error -71
May 16 20:55:20 rubix kernel: usb 2-2: new full speed USB device using address 4
May 16 20:55:20 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: Prism54 USB device now attached to eth1
May 16 20:55:21 rubix usb.agent[2480]:      prism54u: already loaded

Now when I do "ifup eth1" I get:


May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_netdev.c: sem down
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_netdev.c: sem down done
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Boot the device.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Reset USB device.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Reset USB device done.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Setup USB structures.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate pipe 01.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size == cf50f91c
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb == d66e51dc
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf == dbc6a75c
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate buffers.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size [0] = 4096
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb[0] == d9307d38
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf[0] == ce74e000
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->addr = 1
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size [1] = 4096
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb[1] == d9307df8
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf[1] == ce74b000
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->addr = 1
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate pipe done.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate pipe 81.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size == cf50f37c
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb == cf50f85c
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf == cf50f5dc
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate buffers.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size [0] = 4096
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb[0] == d9307678
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf[0] == dd10d000
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->addr = 1
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size [1] = 4096
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb[1] == d93072b8
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf[1] == ce74a000
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->addr = 1
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate pipe done.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate pipe 02.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size == d66e5cdc
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb == cf50f4bc
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf == cf50f61c
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate buffers.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size [0] = 4096
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb[0] == d9307258
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf[0] == c5465000
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->addr = 2
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size [1] = 4096
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb[1] == d93071f8
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf[1] == c4a4d000
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->addr = 2
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate pipe done.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate pipe 82.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size == d66e5e1c
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb == cf50f29c
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf == cf50f27c
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate buffers.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size [0] = 4096
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb[0] == d9307198
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf[0] == ca3f6000
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->addr = 2
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size [1] = 4096
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb[1] == d9307138
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf[1] == ca3f9000
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->addr = 2
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate pipe done.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate pipe 8f.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size == cf50f25c
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb == cf50f23c
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf == cf50f21c
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate buffers.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size [0] = 4
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb[0] == d93070d8
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf[0] == dd219020
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->addr = 15
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->size [1] = 4
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->urb[1] == d0826f58
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->buf[1] == dd219040
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: pipe->addr = 15
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Allocate pipe done.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Setup USB structures successful.
May 16 20:55:42 rubix kernel: 
May 16 20:55:42 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Reset device.
May 16 20:55:42 rubix kernel: 
May 16 20:55:43 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Reset device done.
May 16 20:55:43 rubix kernel: 
May 16 20:55:43 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: eth1: Load firmware.
May 16 20:55:43 rubix kernel: 
May 16 20:55:43 rubix kernel: uhci_hcd 0000:00:10.1: host system error, PCI problems?
May 16 20:55:43 rubix kernel: uhci_hcd 0000:00:10.1: host controller halted, very bad!
May 16 20:55:44 rubix kernel: usb 2-2: bulk timeout on ep1out


the 'ifup eth1' hangs here until I Ctrl-C it. I can then plug out the device:


May 16 20:57:35 rubix kernel: usb 2-2: USB disconnect, address 4
May 16 20:57:35 rubix kernel: /home/mythtv/prism54-usb/usb_init.c: Prism54 USB device eth1 disconnecing
May 16 20:57:35 rubix kernel: 




Anyway, the problem seems to involve loading the firmware, which causes
the fatal uhci error. Any ideas?

Thanks,

Rob



-- 
+-----------------------------+
  Rob Hill                   
  Systems Manager
  Dot Communications
  Tel: (02) 9281 1111 Ext.101
+-----------------------------+