diff options
Diffstat (limited to 'include/linux/usb/ch9.h')
| -rw-r--r-- | include/linux/usb/ch9.h | 46 | 
1 files changed, 40 insertions, 6 deletions
diff --git a/include/linux/usb/ch9.h b/include/linux/usb/ch9.h index 0fd3fbdd828..d5da6c68c25 100644 --- a/include/linux/usb/ch9.h +++ b/include/linux/usb/ch9.h @@ -34,6 +34,7 @@  #define __LINUX_USB_CH9_H  #include <linux/types.h>	/* __u8 etc */ +#include <asm/byteorder.h>	/* le16_to_cpu */  /*-------------------------------------------------------------------------*/ @@ -143,6 +144,11 @@  #define USB_INTRF_FUNC_SUSPEND	0	/* function suspend */  #define USB_INTR_FUNC_SUSPEND_OPT_MASK	0xFF00 +/* + * Suspend Options, Table 9-7 USB 3.0 spec + */ +#define USB_INTRF_FUNC_SUSPEND_LP	(1 << (8 + 0)) +#define USB_INTRF_FUNC_SUSPEND_RW	(1 << (8 + 1))  #define USB_ENDPOINT_HALT		0	/* IN/OUT will STALL */ @@ -377,12 +383,6 @@ struct usb_endpoint_descriptor {  #define USB_ENDPOINT_NUMBER_MASK	0x0f	/* in bEndpointAddress */  #define USB_ENDPOINT_DIR_MASK		0x80 -#define USB_ENDPOINT_SYNCTYPE		0x0c -#define USB_ENDPOINT_SYNC_NONE		(0 << 2) -#define USB_ENDPOINT_SYNC_ASYNC		(1 << 2) -#define USB_ENDPOINT_SYNC_ADAPTIVE	(2 << 2) -#define USB_ENDPOINT_SYNC_SYNC		(3 << 2) -  #define USB_ENDPOINT_XFERTYPE_MASK	0x03	/* in bmAttributes */  #define USB_ENDPOINT_XFER_CONTROL	0  #define USB_ENDPOINT_XFER_ISOC		1 @@ -390,6 +390,17 @@ struct usb_endpoint_descriptor {  #define USB_ENDPOINT_XFER_INT		3  #define USB_ENDPOINT_MAX_ADJUSTABLE	0x80 +#define USB_ENDPOINT_SYNCTYPE		0x0c +#define USB_ENDPOINT_SYNC_NONE		(0 << 2) +#define USB_ENDPOINT_SYNC_ASYNC		(1 << 2) +#define USB_ENDPOINT_SYNC_ADAPTIVE	(2 << 2) +#define USB_ENDPOINT_SYNC_SYNC		(3 << 2) + +#define USB_ENDPOINT_USAGE_MASK		0x30 +#define USB_ENDPOINT_USAGE_DATA		0x00 +#define USB_ENDPOINT_USAGE_FEEDBACK	0x10 +#define USB_ENDPOINT_USAGE_IMPLICIT_FB	0x20	/* Implicit feedback Data endpoint */ +  /*-------------------------------------------------------------------------*/  /** @@ -570,6 +581,17 @@ static inline int usb_endpoint_is_isoc_out(  	return usb_endpoint_xfer_isoc(epd) && usb_endpoint_dir_out(epd);  } +/** + * usb_endpoint_maxp - get endpoint's max packet size + * @epd: endpoint to be checked + * + * Returns @epd's max packet + */ +static inline int usb_endpoint_maxp(const struct usb_endpoint_descriptor *epd) +{ +	return le16_to_cpu(epd->wMaxPacketSize); +} +  /*-------------------------------------------------------------------------*/  /* USB_DT_SS_ENDPOINT_COMP: SuperSpeed Endpoint Companion descriptor */ @@ -851,6 +873,18 @@ enum usb_device_speed {  	USB_SPEED_SUPER,			/* usb 3.0 */  }; +#ifdef __KERNEL__ + +/** + * usb_speed_string() - Returns human readable-name of the speed. + * @speed: The speed to return human-readable name for.  If it's not + *   any of the speeds defined in usb_device_speed enum, string for + *   USB_SPEED_UNKNOWN will be returned. + */ +extern const char *usb_speed_string(enum usb_device_speed speed); + +#endif +  enum usb_device_state {  	/* NOTATTACHED isn't in the USB spec, and this state acts  	 * the same as ATTACHED ... but it's clearer this way.  |