diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-23 15:33:02 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-23 15:33:02 -0400 |
commit | c44dead70a841d90ddc01968012f323c33217c9e (patch) | |
tree | 85489ebe9b9a3413cd8ee197ffb40c8aa8d97e63 /include/linux/usb/composite.h | |
parent | 99dff5856220a02b8711f2e8746413ea6e53ccf6 (diff) | |
parent | d5f6db9e1aff6ccf1876224f152c0268b0c8a992 (diff) |
Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
* 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (205 commits)
USB: EHCI: Remove SPARC_LEON {read,write}_be definitions from ehci.h
USB: UHCI: Support big endian GRUSBHC HC
sparc: add {read,write}*_be routines
USB: UHCI: Add support for big endian descriptors
USB: UHCI: Use ACCESS_ONCE rather than using a full compiler barrier
USB: UHCI: Add support for big endian mmio
usb-storage: Correct adjust_quirks to include latest flags
usb/isp1760: Fix possible unlink problems
usb/isp1760: Move function isp1760_endpoint_disable() within file.
USB: remove remaining usages of hcd->state from usbcore and fix regression
usb: musb: ux500: add configuration and build options for ux500 dma
usb: musb: ux500: add dma glue layer for ux500
usb: musb: ux500: add dma name for ux500
usb: musb: ux500: add ux500 specific code for gadget side
usb: musb: fix compile error
usb-storage: fix up the unusual_realtek device list
USB: gadget: f_audio: Fix invalid dereference of initdata
EHCI: don't rescan interrupt QHs needlessly
OHCI: fix regression caused by nVidia shutdown workaround
USB: OTG: msm: Free VCCCX regulator even if we can't set the voltage
...
Diffstat (limited to 'include/linux/usb/composite.h')
-rw-r--r-- | include/linux/usb/composite.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h index 882a084a841..b78cba466d3 100644 --- a/include/linux/usb/composite.h +++ b/include/linux/usb/composite.h | |||
@@ -37,6 +37,14 @@ | |||
37 | #include <linux/usb/ch9.h> | 37 | #include <linux/usb/ch9.h> |
38 | #include <linux/usb/gadget.h> | 38 | #include <linux/usb/gadget.h> |
39 | 39 | ||
40 | /* | ||
41 | * USB function drivers should return USB_GADGET_DELAYED_STATUS if they | ||
42 | * wish to delay the data/status stages of the control transfer till they | ||
43 | * are ready. The control transfer will then be kept from completing till | ||
44 | * all the function drivers that requested for USB_GADGET_DELAYED_STAUS | ||
45 | * invoke usb_composite_setup_continue(). | ||
46 | */ | ||
47 | #define USB_GADGET_DELAYED_STATUS 0x7fff /* Impossibly large value */ | ||
40 | 48 | ||
41 | struct usb_configuration; | 49 | struct usb_configuration; |
42 | 50 | ||
@@ -285,6 +293,7 @@ struct usb_composite_driver { | |||
285 | extern int usb_composite_probe(struct usb_composite_driver *driver, | 293 | extern int usb_composite_probe(struct usb_composite_driver *driver, |
286 | int (*bind)(struct usb_composite_dev *cdev)); | 294 | int (*bind)(struct usb_composite_dev *cdev)); |
287 | extern void usb_composite_unregister(struct usb_composite_driver *driver); | 295 | extern void usb_composite_unregister(struct usb_composite_driver *driver); |
296 | extern void usb_composite_setup_continue(struct usb_composite_dev *cdev); | ||
288 | 297 | ||
289 | 298 | ||
290 | /** | 299 | /** |
@@ -342,7 +351,12 @@ struct usb_composite_dev { | |||
342 | */ | 351 | */ |
343 | unsigned deactivations; | 352 | unsigned deactivations; |
344 | 353 | ||
345 | /* protects at least deactivation count */ | 354 | /* the composite driver won't complete the control transfer's |
355 | * data/status stages till delayed_status is zero. | ||
356 | */ | ||
357 | int delayed_status; | ||
358 | |||
359 | /* protects deactivations and delayed_status counts*/ | ||
346 | spinlock_t lock; | 360 | spinlock_t lock; |
347 | }; | 361 | }; |
348 | 362 | ||