summaryrefslogtreecommitdiff
path: root/drivers/usb/chipidea/udc.h
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@freescale.com>2015-08-24 14:10:07 +0800
committerPeter Chen <peter.chen@freescale.com>2015-09-15 16:08:28 +0800
commit56ffa1d154c7e12af16273f0cdc42690dd05caf5 (patch)
tree22a8c962b0d623bdb27800d4eb3badab68baf003 /drivers/usb/chipidea/udc.h
parent6ff33f3902c3b1c5d0db6b1e2c70b6d76fba357f (diff)
usb: chipidea: udc: using the correct stall implementation
According to spec, there are functional and protocol stalls. For functional stall, it is for bulk and interrupt endpoints, below are cases for it: - Host sends SET_FEATURE request for Set-Halt, the udc driver needs to set stall, and return true unconditionally. - The gadget driver may call usb_ep_set_halt to stall certain endpoints, if there is a transfer in pending, the udc driver should not set stall, and return -EAGAIN accordingly. These two kinds of stall need to be cleared by host using CLEAR_FEATURE request (Clear-Halt). For protocol stall, it is for control endpoint, this stall will be set if the control request has failed. This stall will be cleared by next setup request (hardware will do it). It fixed usbtest (drivers/usb/misc/usbtest.c) Test 13 "set/clear halt" test failure, meanwhile, this change has been verified by USB2 CV Compliance Test and MSC Tests. Cc: <stable@vger.kernel.org> #3.10+ Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Felipe Balbi <balbi@ti.com> Signed-off-by: Peter Chen <peter.chen@freescale.com>
Diffstat (limited to 'drivers/usb/chipidea/udc.h')
0 files changed, 0 insertions, 0 deletions