diff options
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/host/ehci-q.c | 3 | ||||
-rw-r--r-- | drivers/usb/host/ehci.h | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c index 9bf3c0d983c4..0917e3a32465 100644 --- a/drivers/usb/host/ehci-q.c +++ b/drivers/usb/host/ehci-q.c | |||
@@ -103,7 +103,7 @@ qh_update (struct ehci_hcd *ehci, struct ehci_qh *qh, struct ehci_qtd *qtd) | |||
103 | if (!(hw->hw_info1 & cpu_to_hc32(ehci, 1 << 14))) { | 103 | if (!(hw->hw_info1 & cpu_to_hc32(ehci, 1 << 14))) { |
104 | unsigned is_out, epnum; | 104 | unsigned is_out, epnum; |
105 | 105 | ||
106 | is_out = !(qtd->hw_token & cpu_to_hc32(ehci, 1 << 8)); | 106 | is_out = qh->is_out; |
107 | epnum = (hc32_to_cpup(ehci, &hw->hw_info1) >> 8) & 0x0f; | 107 | epnum = (hc32_to_cpup(ehci, &hw->hw_info1) >> 8) & 0x0f; |
108 | if (unlikely (!usb_gettoggle (qh->dev, epnum, is_out))) { | 108 | if (unlikely (!usb_gettoggle (qh->dev, epnum, is_out))) { |
109 | hw->hw_token &= ~cpu_to_hc32(ehci, QTD_TOGGLE); | 109 | hw->hw_token &= ~cpu_to_hc32(ehci, QTD_TOGGLE); |
@@ -946,6 +946,7 @@ done: | |||
946 | hw = qh->hw; | 946 | hw = qh->hw; |
947 | hw->hw_info1 = cpu_to_hc32(ehci, info1); | 947 | hw->hw_info1 = cpu_to_hc32(ehci, info1); |
948 | hw->hw_info2 = cpu_to_hc32(ehci, info2); | 948 | hw->hw_info2 = cpu_to_hc32(ehci, info2); |
949 | qh->is_out = !is_input; | ||
949 | usb_settoggle (urb->dev, usb_pipeendpoint (urb->pipe), !is_input, 1); | 950 | usb_settoggle (urb->dev, usb_pipeendpoint (urb->pipe), !is_input, 1); |
950 | qh_refresh (ehci, qh); | 951 | qh_refresh (ehci, qh); |
951 | return qh; | 952 | return qh; |
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h index e4feec3457fb..cc7d337ec355 100644 --- a/drivers/usb/host/ehci.h +++ b/drivers/usb/host/ehci.h | |||
@@ -377,6 +377,7 @@ struct ehci_qh { | |||
377 | #define NO_FRAME ((unsigned short)~0) /* pick new start */ | 377 | #define NO_FRAME ((unsigned short)~0) /* pick new start */ |
378 | 378 | ||
379 | struct usb_device *dev; /* access to TT */ | 379 | struct usb_device *dev; /* access to TT */ |
380 | unsigned is_out:1; /* bulk or intr OUT */ | ||
380 | unsigned clearing_tt:1; /* Clear-TT-Buf in progress */ | 381 | unsigned clearing_tt:1; /* Clear-TT-Buf in progress */ |
381 | }; | 382 | }; |
382 | 383 | ||