usb: dwc3: gadget: stop touching HWO TRBs
authorFelipe Balbi <felipe.balbi@linux.intel.com>
Tue, 25 Oct 2016 10:50:46 +0000 (13:50 +0300)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Thu, 3 Nov 2016 08:38:41 +0000 (10:38 +0200)
commit7282c4ef0b66bb3b715ba8875e4e30392e77c7c1
tree9cb29cff624fb6caebd9bbfa624eea0733022a6f
parentd86c5a676e5b1ee89da0cf9c845760c36cfde6d3
usb: dwc3: gadget: stop touching HWO TRBs

Say we have three requests prepared to the HW (reqA,
reqB, and reqC). All of them are composed of
SG-lists with several entries and they all requests
interrupt only on last TRBs of the SG-list.

When we get interrupt for reqA, it could be that
reqB is already half-way transferred and some of its
TRBs will have HWO already cleared.

It's okay to free up TRBs without HWO bit set, but
we need to guarantee we don't giveback a request
that's half-way transferred as that will confuse
gadget drivers.

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc3/gadget.c