On Thu, 26 Feb 2004, Malcolm Blaney wrote:

> hotplug is not enabled, and all I'm doing is connecting the device, then
> modprobing uhci-hcd (or modprobe uhci-hcd then connecting the device..).
> It survives for about 2 seconds while it tries to assign it an address,
> and then hangs.

I think, I didn't ask you to switch debugging on, did I? Just specify
"debug=1" as you load uhci-hcd. I guess, there should appear some output
between the time you insert the device and the hang.

> We have an identical single board computer here, except it has a 400MHz
> cpu instead of the 600MHz I'm having trouble with. That board doesn't
> have a problem with the usb hanging though, with the same kernels.

Ok, you understand, they _cannot_ be identical. Sure the only difference
is the CPU-clock? The CPU you reported was

> CPU: Transmeta(tm) Crusoe(tm) Processor TM5400 stepping 03

Can you compare dmesg, /proc/interrupts, /proc/bus/usb/devices, lspci
-vvxxx and report _differences_ (would be too much to send everything
here:-))?

Further, I guess, you'll have to start throughing printk()s here and
there, until you reasonably narrow the bug down. There's an example below.
Hope it compiles:-) Hope also someone will step in with more experience
and understanding of usb than me:-)

Guennadi
---
Guennadi Liakhovetski

diff -u linux-2.6.3/drivers/usb/host/uhci-hcd.c~ 
linux-2.6.3/drivers/usb/host/uhci-hcd.c
--- linux-2.6.3/drivers/usb/host/uhci-hcd.c~    Fri Feb 20 00:01:30 2004
+++ linux-2.6.3/drivers/usb/host/uhci-hcd.c     Thu Feb 26 21:46:42 2004
@@ -1924,6 +1924,7 @@
                return IRQ_NONE;
        outw(status, io_addr + USBSTS);         /* Clear it */

+       printk(KERN_ALERT"%s(): %d. status %x\n", __FUNCTION__, __LINE__, status);
        if (status & ~(USBSTS_USBINT | USBSTS_ERROR | USBSTS_RD)) {
                if (status & USBSTS_HSE)
                        err("%x: host system error, PCI problems?", io_addr);
@@ -1958,6 +1959,7 @@

                /* Checks the status and does all of the magic necessary */
                uhci_transfer_result(uhci, urb);
+               printk(KERN_ALERT"%s(): %d. urb %p\n", __FUNCTION__, __LINE__, urb);
        }
        spin_unlock(&uhci->urb_list_lock);

diff -u linux-2.6.3/drivers/usb/core/message.c~ linux-2.6.3/drivers/usb/core/message.c
--- linux-2.6.3/drivers/usb/core/message.c~     Thu Feb  5 22:55:48 2004
+++ linux-2.6.3/drivers/usb/core/message.c      Thu Feb 26 21:46:36 2004
@@ -94,6 +94,7 @@
        usb_fill_control_urb(urb, usb_dev, pipe, (unsigned char*)cmd, data, len,
                   usb_api_blocking_completion, 0);

+       printk(KERN_ALERT"%s(): %d. urb %p\n", __FUNCTION__, __LINE__, urb);
        retv = usb_start_wait_urb(urb, timeout, &length);
        if (retv < 0)
                return retv;



-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to