diff options
Diffstat (limited to 'drivers/usb/host/xhci-ring.c')
-rw-r--r-- | drivers/usb/host/xhci-ring.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index c1359ed310b5..a14f657e279b 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c | |||
@@ -323,6 +323,10 @@ static void ring_ep_doorbell(struct xhci_hcd *xhci, | |||
323 | ep_state = ep->ep_state; | 323 | ep_state = ep->ep_state; |
324 | /* Don't ring the doorbell for this endpoint if there are pending | 324 | /* Don't ring the doorbell for this endpoint if there are pending |
325 | * cancellations because the we don't want to interrupt processing. | 325 | * cancellations because the we don't want to interrupt processing. |
326 | * We don't want to restart any stream rings if there's a set dequeue | ||
327 | * pointer command pending because the device can choose to start any | ||
328 | * stream once the endpoint is on the HW schedule. | ||
329 | * FIXME - check all the stream rings for pending cancellations. | ||
326 | */ | 330 | */ |
327 | if (!(ep_state & EP_HALT_PENDING) && !(ep_state & SET_DEQ_PENDING) | 331 | if (!(ep_state & EP_HALT_PENDING) && !(ep_state & SET_DEQ_PENDING) |
328 | && !(ep_state & EP_HALTED)) { | 332 | && !(ep_state & EP_HALTED)) { |
@@ -916,8 +920,9 @@ static void handle_cmd_completion(struct xhci_hcd *xhci, | |||
916 | * Configure endpoint commands can come from the USB core | 920 | * Configure endpoint commands can come from the USB core |
917 | * configuration or alt setting changes, or because the HW | 921 | * configuration or alt setting changes, or because the HW |
918 | * needed an extra configure endpoint command after a reset | 922 | * needed an extra configure endpoint command after a reset |
919 | * endpoint command. In the latter case, the xHCI driver is | 923 | * endpoint command or streams were being configured. |
920 | * not waiting on the configure endpoint command. | 924 | * If the command was for a halted endpoint, the xHCI driver |
925 | * is not waiting on the configure endpoint command. | ||
921 | */ | 926 | */ |
922 | ctrl_ctx = xhci_get_input_control_ctx(xhci, | 927 | ctrl_ctx = xhci_get_input_control_ctx(xhci, |
923 | virt_dev->in_ctx); | 928 | virt_dev->in_ctx); |