USB: uhci.c poll for wakeup events

From: Pete Zaitcev
Date: Tue Nov 23 2004 - 19:24:40 EST


Forwarded from: Alan Stern

This patch causes the uhci driver in 2.4 to wake up the controller when
the root-hub polling loop detects a connect change event. Normally the
wakeup is handled by an interrupt, but it turns out the recent Genesys
Logic GL880S UHCI controller is defective and does not generate the
necessary IRQ. With this patch the controller becomes useable.

[P3: The usb-uhci is not affected, apparently.]


Signed-off-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>

--- linux-2.4.27/drivers/usb/host/uhci.c.orig 2003-06-13 10:51:36.000000000 -0400
+++ linux-2.4.27/drivers/usb/host/uhci.c 2004-10-28 11:52:27.000000000 -0400
@@ -1981,6 +1981,8 @@
if ((data > 0) && (uhci->rh.send != 0)) {
dbg("root-hub INT complete: port1: %x port2: %x data: %x",
inw(io_addr + USBPORTSC1), inw(io_addr + USBPORTSC2), data);
+ if (uhci->is_suspended)
+ wakeup_hc(uhci);
uhci_call_completion(urb);
}



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/