Greg:

This patch (as657) increases the port-reset completion delay in uhci-hcd
for HP's embedded controllers.  Unlike other UHCI controllers, the HP
chips can take as long as 250 us to carry out the processing associated
with finishing a port reset.

This fixes Novell bug #148761.

Alan Stern



Signed-off-by: Alan Stern <[EMAIL PROTECTED]>

---

Index: usb-2.6/drivers/usb/host/uhci-hub.c
===================================================================
--- usb-2.6.orig/drivers/usb/host/uhci-hub.c
+++ usb-2.6/drivers/usb/host/uhci-hub.c
@@ -99,6 +99,21 @@ static void uhci_finish_suspend(struct u
        }
 }
 
+/* Wait for the UHCI controller in HP's iLO2 server management chip.
+ * It can take up to 250 us to finish a reset and set the CSC bit.
+ */
+static void wait_for_HP(unsigned long port_addr)
+{
+       int i;
+
+       for (i = 10; i < 250; i += 10) {
+               if (inw(port_addr) & USBPORTSC_CSC)
+                       return;
+               udelay(10);
+       }
+       /* Log a warning? */
+}
+
 static void uhci_check_ports(struct uhci_hcd *uhci)
 {
        unsigned int port;
@@ -113,6 +128,12 @@ static void uhci_check_ports(struct uhci
                                CLR_RH_PORTSTAT(USBPORTSC_PR);
                                udelay(10);
 
+                               /* HP's server management chip requires
+                                * a longer delay. */
+                               if (to_pci_dev(uhci_dev(uhci))->vendor ==
+                                               PCI_VENDOR_ID_HP)
+                                       wait_for_HP(port_addr);
+
                                /* If the port was enabled before, turning
                                 * reset on caused a port enable change.
                                 * Turning reset off causes a port connect



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to