summaryrefslogtreecommitdiff
path: root/ANDROID_3.4.5/drivers/usb/host/uhci-hub.c
diff options
context:
space:
mode:
Diffstat (limited to 'ANDROID_3.4.5/drivers/usb/host/uhci-hub.c')
-rw-r--r--ANDROID_3.4.5/drivers/usb/host/uhci-hub.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/ANDROID_3.4.5/drivers/usb/host/uhci-hub.c b/ANDROID_3.4.5/drivers/usb/host/uhci-hub.c
index 768d5429..fb0da10f 100644
--- a/ANDROID_3.4.5/drivers/usb/host/uhci-hub.c
+++ b/ANDROID_3.4.5/drivers/usb/host/uhci-hub.c
@@ -98,9 +98,12 @@ static void uhci_finish_suspend(struct uhci_hcd *uhci, int port,
{
int status;
int i;
+ u16 tmp;
+
if (uhci_readw(uhci, port_addr) & SUSPEND_BITS) {
CLR_RH_PORTSTAT(SUSPEND_BITS);
+ wmb();
if (test_bit(port, &uhci->resuming_ports))
set_bit(port, &uhci->port_c_suspend);
@@ -110,9 +113,13 @@ static void uhci_finish_suspend(struct uhci_hcd *uhci, int port,
* Experiments show that some controllers take longer, so
* we'll poll for completion. */
for (i = 0; i < 10; ++i) {
- if (!(uhci_readw(uhci, port_addr) & SUSPEND_BITS))
- break;
udelay(1);
+ tmp = uhci_readw(uhci, port_addr);
+ //if (!(uhci_readw(uhci, port_addr) & SUSPEND_BITS)){
+ //printk("uhci_finish_suspend 01\n");
+ if (!(tmp & SUSPEND_BITS)){
+ break;
+ }
}
}
clear_bit(port, &uhci->resuming_ports);