diff options
| author | David S. Miller <davem@davemloft.net> | 2010-03-22 20:05:26 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-03-22 20:05:26 -0700 | 
| commit | 91c030b4d6445ebe9fbddb86d584441f300df15c (patch) | |
| tree | e8a48e3ad9e0448c690268175e555fa651983546 /include/linux/usb.h | |
| parent | 7c3456fdb503071787f7f972de1069b9cacd16f0 (diff) | |
| parent | ae6be51ed01d6c4aaf249a207b4434bc7785853b (diff) | |
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Diffstat (limited to 'include/linux/usb.h')
| -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 *);   * @number_of_packets: Lists the number of ISO transfer buffers.   * @interval: Specifies the polling interval for interrupt or isochronous   *	transfers.  The units are frames (milliseconds) for full and low - *	speed devices, and microframes (1/8 millisecond) for highspeed ones. + *	speed devices, and microframes (1/8 millisecond) for highspeed + *	and SuperSpeed devices.   * @error_count: Returns the number of ISO transfers that reported errors.   * @context: For use in completion functions.  This normally points to   *	request-specific driver context. @@ -1286,9 +1287,16 @@ static inline void usb_fill_bulk_urb(struct urb *urb,   *   * Initializes a interrupt urb with the proper information needed to submit   * it to a device. - * Note that high speed interrupt endpoints use a logarithmic encoding of - * the endpoint interval, and express polling intervals in microframes - * (eight per millisecond) rather than in frames (one per millisecond). + * + * Note that High Speed and SuperSpeed interrupt endpoints use a logarithmic + * encoding of the endpoint interval, and express polling intervals in + * microframes (eight per millisecond) rather than in frames (one per + * millisecond). + * + * Wireless USB also uses the logarithmic encoding, but specifies it in units of + * 128us instead of 125us.  For Wireless USB devices, the interval is passed + * through to the host controller, rather than being translated into microframe + * units.   */  static inline void usb_fill_int_urb(struct urb *urb,  				    struct usb_device *dev, @@ -1305,7 +1313,7 @@ static inline void usb_fill_int_urb(struct urb *urb,  	urb->transfer_buffer_length = buffer_length;  	urb->complete = complete_fn;  	urb->context = context; -	if (dev->speed == USB_SPEED_HIGH) +	if (dev->speed == USB_SPEED_HIGH || dev->speed == USB_SPEED_SUPER)  		urb->interval = 1 << (interval - 1);  	else  		urb->interval = interval; | 
