Re: USB problem. 'irq 9: nobody cared!'

From: David Brownell
Date: Thu Sep 25 2003 - 14:08:06 EST


Greg KH wrote:
On Thu, Sep 25, 2003 at 12:23:26AM -0400, Yaroslav Halchenko wrote:

Nop - it didn't help :-(

http://onerussian.com/Linux/bug.USB2/dmesg

which else usefull information I can provide?


David, can you try to fix this up. It all started with your uhci
patch...

I have tried, two or three times now ...

The problem is that nobody has ever reported back with results from
testing any updated patch (see attachment, the guts of this being
from Alan Stern). Sort of makes trying be a moot point ... :)

It's OK with me if you just revert the patch that adds a uhci_reset()
entry, but based on what I saw with EHCI and OHCI that'll just turn
up a different set of problems with certain BIOS configurations (none
of which I have) ... which will need to be fixed by having a UHCI
reset sequence that works correctly from _all_ initial states.

- Dave


--- 1.44/drivers/usb/host/uhci-hcd.c Fri Jul 18 06:22:32 2003
+++ edited/drivers/usb/host/uhci-hcd.c Fri Sep 19 12:23:54 2003
@@ -1960,8 +1960,9 @@
{
unsigned int io_addr = uhci->io_addr;

- /* Global reset for 50ms */
+ /* Global reset for 50ms, and don't interrupt me */
uhci->state = UHCI_RESET;
+ outw(0, io_addr + USBINTR);
outw(USBCMD_GRESET, io_addr + USBCMD);
set_current_state(TASK_UNINTERRUPTIBLE);
schedule_timeout((HZ*50+999) / 1000);
@@ -2187,6 +2188,7 @@
/* Maybe kick BIOS off this hardware. Then reset, so we won't get
* interrupts from any previous setup.
*/
+ outw(0, uhci->io_addr + USBINTR);
pci_write_config_word(hcd->pdev, USBLEGSUP, USBLEGSUP_DEFAULT);
reset_hc(uhci);
return 0;