summaryrefslogtreecommitdiff
path: root/drivers/usb/gadget/udc/aspeed-vhub/vhub.h
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2019-07-26 08:05:32 +0300
committerFelipe Balbi <felipe.balbi@linux.intel.com>2019-08-12 08:54:48 +0300
commit7e420cef9047dc945b019dc235ec91c792c30f2d (patch)
treed1524e8fde2aff74b0c498b3b7c5db45d50d67c7 /drivers/usb/gadget/udc/aspeed-vhub/vhub.h
parentd042c35eb86a8ef13c4b5180fd6953a51d9e1efc (diff)
downloadlinux-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.h1
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,
};
/*