aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/usb.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/usb.h')
-rw-r--r--include/linux/usb.h28
1 files changed, 11 insertions, 17 deletions
diff --git a/include/linux/usb.h b/include/linux/usb.h
index a748815ee629..1eb4762d9ea8 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -953,7 +953,6 @@ extern int usb_disabled(void);
953#define URB_ISO_ASAP 0x0002 /* iso-only, urb->start_frame 953#define URB_ISO_ASAP 0x0002 /* iso-only, urb->start_frame
954 * ignored */ 954 * ignored */
955#define URB_NO_TRANSFER_DMA_MAP 0x0004 /* urb->transfer_dma valid on submit */ 955#define URB_NO_TRANSFER_DMA_MAP 0x0004 /* urb->transfer_dma valid on submit */
956#define URB_NO_SETUP_DMA_MAP 0x0008 /* urb->setup_dma valid on submit */
957#define URB_NO_FSBR 0x0020 /* UHCI-specific */ 956#define URB_NO_FSBR 0x0020 /* UHCI-specific */
958#define URB_ZERO_PACKET 0x0040 /* Finish bulk OUT with short packet */ 957#define URB_ZERO_PACKET 0x0040 /* Finish bulk OUT with short packet */
959#define URB_NO_INTERRUPT 0x0080 /* HINT: no non-error interrupt 958#define URB_NO_INTERRUPT 0x0080 /* HINT: no non-error interrupt
@@ -1049,12 +1048,8 @@ typedef void (*usb_complete_t)(struct urb *);
1049 * @setup_packet: Only used for control transfers, this points to eight bytes 1048 * @setup_packet: Only used for control transfers, this points to eight bytes
1050 * of setup data. Control transfers always start by sending this data 1049 * of setup data. Control transfers always start by sending this data
1051 * to the device. Then transfer_buffer is read or written, if needed. 1050 * to the device. Then transfer_buffer is read or written, if needed.
1052 * @setup_dma: For control transfers with URB_NO_SETUP_DMA_MAP set, the 1051 * @setup_dma: DMA pointer for the setup packet. The caller must not use
1053 * device driver has provided this DMA address for the setup packet. 1052 * this field; setup_packet must point to a valid buffer.
1054 * The host controller driver should use this in preference to
1055 * setup_packet, but the HCD may chose to ignore the address if it must
1056 * copy the setup packet into internal structures. Therefore, setup_packet
1057 * must always point to a valid buffer.
1058 * @start_frame: Returns the initial frame for isochronous transfers. 1053 * @start_frame: Returns the initial frame for isochronous transfers.
1059 * @number_of_packets: Lists the number of ISO transfer buffers. 1054 * @number_of_packets: Lists the number of ISO transfer buffers.
1060 * @interval: Specifies the polling interval for interrupt or isochronous 1055 * @interval: Specifies the polling interval for interrupt or isochronous
@@ -1086,13 +1081,14 @@ typedef void (*usb_complete_t)(struct urb *);
1086 * bounce buffer or talking to an IOMMU), 1081 * bounce buffer or talking to an IOMMU),
1087 * although they're cheap on commodity x86 and ppc hardware. 1082 * although they're cheap on commodity x86 and ppc hardware.
1088 * 1083 *
1089 * Alternatively, drivers may pass the URB_NO_xxx_DMA_MAP transfer flags, 1084 * Alternatively, drivers may pass the URB_NO_TRANSFER_DMA_MAP transfer flag,
1090 * which tell the host controller driver that no such mapping is needed since 1085 * which tells the host controller driver that no such mapping is needed for
1086 * the transfer_buffer since
1091 * the device driver is DMA-aware. For example, a device driver might 1087 * the device driver is DMA-aware. For example, a device driver might
1092 * allocate a DMA buffer with usb_alloc_coherent() or call usb_buffer_map(). 1088 * allocate a DMA buffer with usb_alloc_coherent() or call usb_buffer_map().
1093 * When these transfer flags are provided, host controller drivers will 1089 * When this transfer flag is provided, host controller drivers will
1094 * attempt to use the dma addresses found in the transfer_dma and/or 1090 * attempt to use the dma address found in the transfer_dma
1095 * setup_dma fields rather than determining a dma address themselves. 1091 * field rather than determining a dma address themselves.
1096 * 1092 *
1097 * Note that transfer_buffer must still be set if the controller 1093 * Note that transfer_buffer must still be set if the controller
1098 * does not support DMA (as indicated by bus.uses_dma) and when talking 1094 * does not support DMA (as indicated by bus.uses_dma) and when talking
@@ -1115,11 +1111,9 @@ typedef void (*usb_complete_t)(struct urb *);
1115 * should always terminate with a short packet, even if it means adding an 1111 * should always terminate with a short packet, even if it means adding an
1116 * extra zero length packet. 1112 * extra zero length packet.
1117 * 1113 *
1118 * Control URBs must provide a setup_packet. The setup_packet and 1114 * Control URBs must provide a valid pointer in the setup_packet field.
1119 * transfer_buffer may each be mapped for DMA or not, independently of 1115 * Unlike the transfer_buffer, the setup_packet may not be mapped for DMA
1120 * the other. The transfer_flags bits URB_NO_TRANSFER_DMA_MAP and 1116 * beforehand.
1121 * URB_NO_SETUP_DMA_MAP indicate which buffers have already been mapped.
1122 * URB_NO_SETUP_DMA_MAP is ignored for non-control URBs.
1123 * 1117 *
1124 * Interrupt URBs must provide an interval, saying how often (in milliseconds 1118 * Interrupt URBs must provide an interval, saying how often (in milliseconds
1125 * or, for highspeed devices, 125 microsecond units) 1119 * or, for highspeed devices, 125 microsecond units)