diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2011-12-22 17:05:01 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-12-22 17:05:19 -0500 |
commit | ee0db58ade2c60342a7d648f375d0a4107c39527 (patch) | |
tree | b5e2fce1dcfa281fd15427d109d5f1226de9c8c7 /include/linux/usb | |
parent | eea9fc7ddda80d3221fd79430b841a2cb315bb9f (diff) | |
parent | eeb720fb21d61dfc3aac780e721150998ef603af (diff) |
Merge branch 'for-gadget/next' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next
* 'for-gadget/next' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb: (24 commits)
usb: dwc3: gadget: add support for SG lists
usb: dwc3: gadget: don't force 'LST' always
usb: dwc3: gadget: don't return anything on prepare trbs
usb: dwc3: gadget: re-factor dwc3_prepare_trbs()
usb: gadget: introduce support for sg lists
usb: renesas: pipe: convert a long if into a XOR operation
usb: gadget: remove useless depends on Kconfig
usb: gadget: s3c-hsudc: remove the_controller global
usb: gadget: s3c-hsudc: use release_mem_region instead of release_resource
usb: gadget: s3c-hsudc: Add regulator handling
usb: gadget: s3c-hsudc: use udc_start and udc_stop functions
usb: gadget: s3c-hsudc: move device registration to probe
usb: gadget: s3c-hsudc: add missing otg_put_transceiver in probe
usb: gadget: s3c-hsudc: add __devinit to probe function
usb: gadget: s3c-hsudc: move platform_data struct to global header
USB: EHCI: Add Marvell Host Controller driver
USB: OTG: add Marvell usb OTG driver support
usb: gadget: mv_udc: drop ARCH dependency
usb: gadget: mv_udc: fix bug in ep_dequeue
usb: gadget: enlarge maxburst bit width.
...
Diffstat (limited to 'include/linux/usb')
-rw-r--r-- | include/linux/usb/gadget.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h index 317d8925387c..da653b5c7134 100644 --- a/include/linux/usb/gadget.h +++ b/include/linux/usb/gadget.h | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/list.h> | 21 | #include <linux/list.h> |
22 | #include <linux/slab.h> | 22 | #include <linux/slab.h> |
23 | #include <linux/scatterlist.h> | ||
23 | #include <linux/types.h> | 24 | #include <linux/types.h> |
24 | #include <linux/usb/ch9.h> | 25 | #include <linux/usb/ch9.h> |
25 | 26 | ||
@@ -32,6 +33,9 @@ struct usb_ep; | |||
32 | * @dma: DMA address corresponding to 'buf'. If you don't set this | 33 | * @dma: DMA address corresponding to 'buf'. If you don't set this |
33 | * field, and the usb controller needs one, it is responsible | 34 | * field, and the usb controller needs one, it is responsible |
34 | * for mapping and unmapping the buffer. | 35 | * for mapping and unmapping the buffer. |
36 | * @sg: a scatterlist for SG-capable controllers. | ||
37 | * @num_sgs: number of SG entries | ||
38 | * @num_mapped_sgs: number of SG entries mapped to DMA (internal) | ||
35 | * @length: Length of that data | 39 | * @length: Length of that data |
36 | * @stream_id: The stream id, when USB3.0 bulk streams are being used | 40 | * @stream_id: The stream id, when USB3.0 bulk streams are being used |
37 | * @no_interrupt: If true, hints that no completion irq is needed. | 41 | * @no_interrupt: If true, hints that no completion irq is needed. |
@@ -88,6 +92,10 @@ struct usb_request { | |||
88 | unsigned length; | 92 | unsigned length; |
89 | dma_addr_t dma; | 93 | dma_addr_t dma; |
90 | 94 | ||
95 | struct scatterlist *sg; | ||
96 | unsigned num_sgs; | ||
97 | unsigned num_mapped_sgs; | ||
98 | |||
91 | unsigned stream_id:16; | 99 | unsigned stream_id:16; |
92 | unsigned no_interrupt:1; | 100 | unsigned no_interrupt:1; |
93 | unsigned zero:1; | 101 | unsigned zero:1; |
@@ -164,7 +172,7 @@ struct usb_ep { | |||
164 | unsigned maxpacket:16; | 172 | unsigned maxpacket:16; |
165 | unsigned max_streams:16; | 173 | unsigned max_streams:16; |
166 | unsigned mult:2; | 174 | unsigned mult:2; |
167 | unsigned maxburst:4; | 175 | unsigned maxburst:5; |
168 | u8 address; | 176 | u8 address; |
169 | const struct usb_endpoint_descriptor *desc; | 177 | const struct usb_endpoint_descriptor *desc; |
170 | const struct usb_ss_ep_comp_descriptor *comp_desc; | 178 | const struct usb_ss_ep_comp_descriptor *comp_desc; |
@@ -479,6 +487,7 @@ struct usb_gadget_ops { | |||
479 | * @speed: Speed of current connection to USB host. | 487 | * @speed: Speed of current connection to USB host. |
480 | * @max_speed: Maximal speed the UDC can handle. UDC must support this | 488 | * @max_speed: Maximal speed the UDC can handle. UDC must support this |
481 | * and all slower speeds. | 489 | * and all slower speeds. |
490 | * @sg_supported: true if we can handle scatter-gather | ||
482 | * @is_otg: True if the USB device port uses a Mini-AB jack, so that the | 491 | * @is_otg: True if the USB device port uses a Mini-AB jack, so that the |
483 | * gadget driver must provide a USB OTG descriptor. | 492 | * gadget driver must provide a USB OTG descriptor. |
484 | * @is_a_peripheral: False unless is_otg, the "A" end of a USB cable | 493 | * @is_a_peripheral: False unless is_otg, the "A" end of a USB cable |
@@ -519,6 +528,7 @@ struct usb_gadget { | |||
519 | struct list_head ep_list; /* of usb_ep */ | 528 | struct list_head ep_list; /* of usb_ep */ |
520 | enum usb_device_speed speed; | 529 | enum usb_device_speed speed; |
521 | enum usb_device_speed max_speed; | 530 | enum usb_device_speed max_speed; |
531 | unsigned sg_supported:1; | ||
522 | unsigned is_otg:1; | 532 | unsigned is_otg:1; |
523 | unsigned is_a_peripheral:1; | 533 | unsigned is_a_peripheral:1; |
524 | unsigned b_hnp_enable:1; | 534 | unsigned b_hnp_enable:1; |