diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-19 16:39:21 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-19 16:39:21 -0400 |
| commit | 8fdb7e9f612b7c6ba6c3ba460c14263b5ce90f79 (patch) | |
| tree | 09f007a62475c22546ba693e5171024cc67fb38c /include | |
| parent | fc7f99cf36ebae853639dabb43bc2f0098c59aef (diff) | |
| parent | 4cb80cda51ff950614701fb30c9d4e583fe5a31f (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (45 commits)
USB: gadget/multi: cdc_do_config: remove redundant check
usb: r8a66597-hcd: fix removed from an attached hub
USB: xhci: Make endpoint interval debugging clearer.
USB: Fix usb_fill_int_urb for SuperSpeed devices
USB: cp210x: Remove double usb_control_msg from cp210x_set_config
USB: Remove last bit of CONFIG_USB_BERRY_CHARGE
USB: gadget: add gadget controller number for s3c-hsotg driver
USB: ftdi_sio: Fix locking for change_speed() function
USB: g_mass_storage: fixed module name in Kconfig
USB: gadget: f_mass_storage::fsg_bind(): fix error handling
USB: g_mass_storage: fix section mismatch warnings
USB: gadget: fix Blackfin builds after gadget cleansing
USB: goku_udc: remove potential null dereference
USB: option.c: Add Pirelli VID/PID and indicate Pirelli's modem interface is 0xff
USB: serial: Fix module name typo for qcaux Kconfig entry.
usb: cdc-wdm: Fix deadlock between write and resume
usb: cdc-wdm: Fix order in disconnect and fix locking
usb: cdc-wdm:Fix loss of data due to autosuspend
usb: cdc-wdm: Fix submission of URB after suspension
usb: cdc-wdm: Fix race between disconnect and debug messages
...
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/usb.h | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/include/linux/usb.h b/include/linux/usb.h index 8c9f053111bb..ce1323c4e47c 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
| @@ -1055,7 +1055,8 @@ typedef void (*usb_complete_t)(struct urb *); | |||
| 1055 | * @number_of_packets: Lists the number of ISO transfer buffers. | 1055 | * @number_of_packets: Lists the number of ISO transfer buffers. |
| 1056 | * @interval: Specifies the polling interval for interrupt or isochronous | 1056 | * @interval: Specifies the polling interval for interrupt or isochronous |
| 1057 | * transfers. The units are frames (milliseconds) for full and low | 1057 | * transfers. The units are frames (milliseconds) for full and low |
| 1058 | * speed devices, and microframes (1/8 millisecond) for highspeed ones. | 1058 | * speed devices, and microframes (1/8 millisecond) for highspeed |
| 1059 | * and SuperSpeed devices. | ||
| 1059 | * @error_count: Returns the number of ISO transfers that reported errors. | 1060 | * @error_count: Returns the number of ISO transfers that reported errors. |
| 1060 | * @context: For use in completion functions. This normally points to | 1061 | * @context: For use in completion functions. This normally points to |
| 1061 | * request-specific driver context. | 1062 | * request-specific driver context. |
| @@ -1286,9 +1287,16 @@ static inline void usb_fill_bulk_urb(struct urb *urb, | |||
| 1286 | * | 1287 | * |
| 1287 | * Initializes a interrupt urb with the proper information needed to submit | 1288 | * Initializes a interrupt urb with the proper information needed to submit |
| 1288 | * it to a device. | 1289 | * it to a device. |
| 1289 | * Note that high speed interrupt endpoints use a logarithmic encoding of | 1290 | * |
| 1290 | * the endpoint interval, and express polling intervals in microframes | 1291 | * Note that High Speed and SuperSpeed interrupt endpoints use a logarithmic |
| 1291 | * (eight per millisecond) rather than in frames (one per millisecond). | 1292 | * encoding of the endpoint interval, and express polling intervals in |
| 1293 | * microframes (eight per millisecond) rather than in frames (one per | ||
| 1294 | * millisecond). | ||
| 1295 | * | ||
| 1296 | * Wireless USB also uses the logarithmic encoding, but specifies it in units of | ||
| 1297 | * 128us instead of 125us. For Wireless USB devices, the interval is passed | ||
| 1298 | * through to the host controller, rather than being translated into microframe | ||
| 1299 | * units. | ||
| 1292 | */ | 1300 | */ |
| 1293 | static inline void usb_fill_int_urb(struct urb *urb, | 1301 | static inline void usb_fill_int_urb(struct urb *urb, |
| 1294 | struct usb_device *dev, | 1302 | struct usb_device *dev, |
| @@ -1305,7 +1313,7 @@ static inline void usb_fill_int_urb(struct urb *urb, | |||
| 1305 | urb->transfer_buffer_length = buffer_length; | 1313 | urb->transfer_buffer_length = buffer_length; |
| 1306 | urb->complete = complete_fn; | 1314 | urb->complete = complete_fn; |
| 1307 | urb->context = context; | 1315 | urb->context = context; |
| 1308 | if (dev->speed == USB_SPEED_HIGH) | 1316 | if (dev->speed == USB_SPEED_HIGH || dev->speed == USB_SPEED_SUPER) |
| 1309 | urb->interval = 1 << (interval - 1); | 1317 | urb->interval = 1 << (interval - 1); |
| 1310 | else | 1318 | else |
| 1311 | urb->interval = interval; | 1319 | urb->interval = interval; |
