linux-pinenote/include/linux/usb
Roger Quadros 1b9ba00017 usb: gadget: composite: Allow function drivers to pause control transfers
Some USB function drivers (e.g. f_mass_storage.c) need to delay or defer the
data/status stages of standard control requests like SET_CONFIGURATION or
SET_INTERFACE till they are done with their bookkeeping and are actually ready
for accepting new commands to their interface.

They can now achieve this functionality by returning USB_GADGET_DELAYED_STATUS
in their setup handlers (e.g. set_alt()). The composite framework will then
defer completion of the control transfer by not completing the data/status stages.

This ensures that the host does not send new packets to the interface till the
function driver is ready to take them.

When the function driver that requested for USB_GADGET_DELAYED_STATUS is done
with its bookkeeping, it should signal the composite framework to continue with
the data/status stages of the control transfer. It can do so by invoking
the new API usb_composite_setup_continue(). This is where the control transfer's
data/status stages are completed and host can initiate new transfers.

The DELAYED_STATUS mechanism is currently only supported if the expected data phase
is 0 bytes (i.e. w_length == 0). Since SET_CONFIGURATION and SET_INTERFACE are the
only cases that will use this mechanism, this is not a limitation.

Signed-off-by: Roger Quadros <roger.quadros@nokia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-10 14:14:57 -07:00
..
association.h
atmel_usba_udc.h
audio-v2.h
audio.h
c67x00.h
cdc.h CDC NCM errata updates for cdc.h 2011-02-08 13:54:42 -08:00
ch9.h usb/ch9: use proper endianess for wBytesPerInterval 2011-05-02 16:42:51 -07:00
ch11.h USB: Remove bogus USB_PORT_STAT_SUPER_SPEED symbol. 2011-03-13 18:23:50 -07:00
composite.h usb: gadget: composite: Allow function drivers to pause control transfers 2011-05-10 14:14:57 -07:00
ehci_def.h USB: EHCI: Support controllers with big endian capability regs 2011-05-03 11:43:21 -07:00
functionfs.h Fix common misspellings 2011-03-31 11:26:23 -03:00
g_hid.h
g_printer.h
gadget.h usb gadget: fix all Section mismatch warnings 2011-04-13 16:31:12 -07:00
gadgetfs.h
gpio_vbus.h
hcd.h usb: Make core allocate resources per PCI-device. 2011-03-13 18:23:06 -07:00
input.h
intel_mid_otg.h
iowarrior.h
irda.h
isp116x.h
isp1362.h
isp1760.h
Kbuild USB: gadget: export functionfs.h to the includes available for userspace 2011-02-04 11:57:21 -08:00
langwell_otg.h
langwell_udc.h
m66592.h
midi.h Fix common misspellings 2011-03-31 11:26:23 -03:00
msm_hsusb.h USB: OTG: msm: Implement charger detection 2011-05-06 18:27:48 -07:00
msm_hsusb_hw.h USB: OTG: msm: Add PHY suspend support for MSM8960 2011-05-06 18:27:49 -07:00
musb.h
net2280.h
otg.h usb: fix building musb drivers 2011-05-06 18:16:39 -07:00
quirks.h
r8a66597.h
renesas_usbhs.h usb: renesas_usbhs: use delayed_work instead of work_struct 2011-04-29 17:24:34 -07:00
rndis_host.h
serial.h Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 2011-03-16 15:11:04 -07:00
sl811.h
storage.h
tmc.h
ulpi.h usb: otg: Add ulpi viewport access ops 2011-03-11 14:22:10 -08:00
usbnet.h usbnet: Resubmit interrupt URB if device is open 2011-04-28 12:56:09 -07:00
video.h
wusb-wa.h
wusb.h Fix common misspellings 2011-03-31 11:26:23 -03:00