Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f579c2b4 authored by Alan Stern's avatar Alan Stern Committed by Greg Kroah-Hartman
Browse files

USB Gadget: documentation update



This patch (as1102) clarifies two points in the USB Gadget kerneldoc:

	Request completion callbacks are always made with interrupts
	disabled;

	Device controllers may not support STALLing the status stage
	of a control transfer after the data stage is over.

Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Acked-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent e0d795e4
Loading
Loading
Loading
Loading
+6 −2
Original line number Original line Diff line number Diff line
@@ -33,7 +33,8 @@ struct usb_ep;
 * @short_not_ok: When reading data, makes short packets be
 * @short_not_ok: When reading data, makes short packets be
 *     treated as errors (queue stops advancing till cleanup).
 *     treated as errors (queue stops advancing till cleanup).
 * @complete: Function called when request completes, so this request and
 * @complete: Function called when request completes, so this request and
 *	its buffer may be re-used.
 *	its buffer may be re-used.  The function will always be called with
 *	interrupts disabled, and it must not sleep.
 *	Reads terminate with a short packet, or when the buffer fills,
 *	Reads terminate with a short packet, or when the buffer fills,
 *	whichever comes first.  When writes terminate, some data bytes
 *	whichever comes first.  When writes terminate, some data bytes
 *	will usually still be in flight (often in a hardware fifo).
 *	will usually still be in flight (often in a hardware fifo).
@@ -271,7 +272,10 @@ static inline void usb_ep_free_request(struct usb_ep *ep,
 * (Note that some USB device controllers disallow protocol stall responses
 * (Note that some USB device controllers disallow protocol stall responses
 * in some cases.)  When control responses are deferred (the response is
 * in some cases.)  When control responses are deferred (the response is
 * written after the setup callback returns), then usb_ep_set_halt() may be
 * written after the setup callback returns), then usb_ep_set_halt() may be
 * used on ep0 to trigger protocol stalls.
 * used on ep0 to trigger protocol stalls.  Depending on the controller,
 * it may not be possible to trigger a status-stage protocol stall when the
 * data stage is over, that is, from within the response's completion
 * routine.
 *
 *
 * For periodic endpoints, like interrupt or isochronous ones, the usb host
 * For periodic endpoints, like interrupt or isochronous ones, the usb host
 * arranges to poll once per interval, and the gadget driver usually will
 * arranges to poll once per interval, and the gadget driver usually will