USB_EP_SET_HALT(9) | Kernel Mode Gadget API | USB_EP_SET_HALT(9) |
NAME¶
usb_ep_set_halt - sets the endpoint halt feature.
SYNOPSIS¶
int usb_ep_set_halt(struct usb_ep * ep);
ARGUMENTS¶
ep
DESCRIPTION¶
Use this to stall an endpoint, perhaps as an error report. Except for control endpoints, the endpoint stays halted (will not stream any data) until the host clears this feature; drivers may need to empty the endpoint's request queue first, to make sure no inappropriate transfers happen.
Note that while an endpoint CLEAR_FEATURE will be invisible to the gadget driver, a SET_INTERFACE will not be. To reset endpoints for the current altsetting, see usb_ep_clear_halt. When switching altsettings, it's simplest to use usb_ep_enable or usb_ep_disable for the endpoints.
Returns zero, or a negative error code. On success, this call sets underlying hardware state that blocks data transfers. Attempts to halt IN endpoints will fail (returning -EAGAIN) if any transfer requests are still queued, or if the controller hardware (usually a FIFO) still holds bytes that the host hasn't collected.
AUTHOR¶
David Brownell <dbrownell@users.sourceforge.net>
COPYRIGHT¶
June 2024 | Kernel Hackers Manual 3.10 |