xhci: Find out where an endpoint or stream stopped from its context.
authorMathias Nyman <mathias.nyman@linux.intel.com>
Fri, 2 Jun 2017 13:36:24 +0000 (16:36 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 3 Jun 2017 09:02:58 +0000 (18:02 +0900)
commitcdd504e11391f0811a681d6efc680ca1e1c8ffac
tree55169d7eb1ed5c31d2a7f643683831fa6cb40e41
parented18c5fa945768a9bec994e786edbbbc7695acf6
xhci: Find out where an endpoint or stream stopped from its context.

When xHC is asked to stop an endpoint it will save the position it
stopped on in the endpoint or stream context.

xhci driver needs to know if the controller stopped on the exact same
TRB that the driver was asked to cancel as it then needs to move past
the TD instead of turning the TD to no-op TRBs.

xhci driver used to get the stopped position from a "stopped" transfer
event before the stop endpoint command completed, but if the ring
is already stopped, or in a halted or error state this event is missing.

Get the stopped position from the endpoint or stream context instead

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-ring.c