summaryrefslogtreecommitdiff
path: root/drivers/usb/host/fhci-hcd.c
diff options
context:
space:
mode:
authorMathias Nyman <mathias.nyman@linux.intel.com>2016-08-16 10:18:03 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-09-07 08:32:40 +0200
commit76ba94f74c8e064afbd192646b5c198c7fa0379a (patch)
treeb9442b201c80f51b4d143d9380fd86cef919dfde /drivers/usb/host/fhci-hcd.c
parent8fd5243e5f01b6f5ad1457c348d0c9e3353b7745 (diff)
xhci: always handle "Command Ring Stopped" events
commit 33be126510974e2eb9679f1ca9bca4f67ee4c4c7 upstream. Fix "Command completion event does not match command" errors by always handling the command ring stopped events. The command ring stopped event is generated as a result of aborting or stopping the command ring with a register write. It is not caused by a command in the command queue, and thus won't have a matching command in the comman list. Solve it by handling the command ring stopped event before checking for a matching command. In most command time out cases we abort the command ring, and get a command ring stopped event. The events command pointer will point at the current command ring dequeue, which in most cases matches the timed out command in the command list, and no error messages are seen. If we instead get a command aborted event before the command ring stopped event, the abort event will increse the command ring dequeue pointer, and the following command ring stopped events command pointer will point at the next, not yet queued command. This case triggered the error message Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/fhci-hcd.c')
0 files changed, 0 insertions, 0 deletions