Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug

NAME

       usb_ep_set_halt - sets the endpoint halt feature.

SYNOPSIS

       int usb_ep_set_halt  (struct usb_ep * ep);

ARGUMENTS

       ep     the non-isochronous endpoint being stalled

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>.