diff options
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/host/ehci-q.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c index 6e28e593c044..5ada7cd5698b 100644 --- a/drivers/usb/host/ehci-q.c +++ b/drivers/usb/host/ehci-q.c | |||
@@ -1022,12 +1022,14 @@ static void start_unlink_async (struct ehci_hcd *ehci, struct ehci_qh *qh) | |||
1022 | /* stop async schedule right now? */ | 1022 | /* stop async schedule right now? */ |
1023 | if (unlikely (qh == ehci->async)) { | 1023 | if (unlikely (qh == ehci->async)) { |
1024 | /* can't get here without STS_ASS set */ | 1024 | /* can't get here without STS_ASS set */ |
1025 | if (ehci_to_hcd(ehci)->state != HC_STATE_HALT) { | 1025 | if (ehci_to_hcd(ehci)->state != HC_STATE_HALT |
1026 | && !ehci->reclaim) { | ||
1027 | /* ... and CMD_IAAD clear */ | ||
1026 | writel (cmd & ~CMD_ASE, &ehci->regs->command); | 1028 | writel (cmd & ~CMD_ASE, &ehci->regs->command); |
1027 | wmb (); | 1029 | wmb (); |
1028 | // handshake later, if we need to | 1030 | // handshake later, if we need to |
1031 | timer_action_done (ehci, TIMER_ASYNC_OFF); | ||
1029 | } | 1032 | } |
1030 | timer_action_done (ehci, TIMER_ASYNC_OFF); | ||
1031 | return; | 1033 | return; |
1032 | } | 1034 | } |
1033 | 1035 | ||