diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2019-07-26 08:05:32 +0300 |
---|---|---|
committer | Felipe Balbi <felipe.balbi@linux.intel.com> | 2019-08-12 08:54:48 +0300 |
commit | 7e420cef9047dc945b019dc235ec91c792c30f2d (patch) | |
tree | d1524e8fde2aff74b0c498b3b7c5db45d50d67c7 /drivers/usb/gadget/udc/aspeed-vhub/vhub.h | |
parent | d042c35eb86a8ef13c4b5180fd6953a51d9e1efc (diff) | |
download | linux-7e420cef9047dc945b019dc235ec91c792c30f2d.tar.xz |
usb: gadget: aspeed: Fix EP0 stall handling
When stalling EP0, we need to wait for an ACK interrupt,
otherwise we may get out of sync on the next setup packet
data phase. Also we need to ignore the direction when
processing that interrupt as the HW reports a potential
mismatch.
Implement this by adding a stall state to EP0. This fixes
some reported issues with mass storage and some hosts.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Diffstat (limited to 'drivers/usb/gadget/udc/aspeed-vhub/vhub.h')
-rw-r--r-- | drivers/usb/gadget/udc/aspeed-vhub/vhub.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/gadget/udc/aspeed-vhub/vhub.h b/drivers/usb/gadget/udc/aspeed-vhub/vhub.h index 2e7ef387f4f0..00f922604a1c 100644 --- a/drivers/usb/gadget/udc/aspeed-vhub/vhub.h +++ b/drivers/usb/gadget/udc/aspeed-vhub/vhub.h @@ -257,6 +257,7 @@ enum ep0_state { ep0_state_token, ep0_state_data, ep0_state_status, + ep0_state_stall, }; /* |