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 0fd3fbdd8283..d5da6c68c250 100644 --- a/include/linux/usb/ch9.h +++ b/include/linux/usb/ch9.h | |||
| @@ -34,6 +34,7 @@ | |||
| 34 | #define __LINUX_USB_CH9_H | 34 | #define __LINUX_USB_CH9_H |
| 35 | 35 | ||
| 36 | #include <linux/types.h> /* __u8 etc */ | 36 | #include <linux/types.h> /* __u8 etc */ |
| 37 | #include <asm/byteorder.h> /* le16_to_cpu */ | ||
| 37 | 38 | ||
| 38 | /*-------------------------------------------------------------------------*/ | 39 | /*-------------------------------------------------------------------------*/ |
| 39 | 40 | ||
| @@ -143,6 +144,11 @@ | |||
| 143 | #define USB_INTRF_FUNC_SUSPEND 0 /* function suspend */ | 144 | #define USB_INTRF_FUNC_SUSPEND 0 /* function suspend */ |
| 144 | 145 | ||
| 145 | #define USB_INTR_FUNC_SUSPEND_OPT_MASK 0xFF00 | 146 | #define USB_INTR_FUNC_SUSPEND_OPT_MASK 0xFF00 |
| 147 | /* | ||
| 148 | * Suspend Options, Table 9-7 USB 3.0 spec | ||
| 149 | */ | ||
| 150 | #define USB_INTRF_FUNC_SUSPEND_LP (1 << (8 + 0)) | ||
| 151 | #define USB_INTRF_FUNC_SUSPEND_RW (1 << (8 + 1)) | ||
| 146 | 152 | ||
| 147 | #define USB_ENDPOINT_HALT 0 /* IN/OUT will STALL */ | 153 | #define USB_ENDPOINT_HALT 0 /* IN/OUT will STALL */ |
| 148 | 154 | ||
| @@ -377,12 +383,6 @@ struct usb_endpoint_descriptor { | |||
| 377 | #define USB_ENDPOINT_NUMBER_MASK 0x0f /* in bEndpointAddress */ | 383 | #define USB_ENDPOINT_NUMBER_MASK 0x0f /* in bEndpointAddress */ |
| 378 | #define USB_ENDPOINT_DIR_MASK 0x80 | 384 | #define USB_ENDPOINT_DIR_MASK 0x80 |
| 379 | 385 | ||
| 380 | #define USB_ENDPOINT_SYNCTYPE 0x0c | ||
| 381 | #define USB_ENDPOINT_SYNC_NONE (0 << 2) | ||
| 382 | #define USB_ENDPOINT_SYNC_ASYNC (1 << 2) | ||
| 383 | #define USB_ENDPOINT_SYNC_ADAPTIVE (2 << 2) | ||
| 384 | #define USB_ENDPOINT_SYNC_SYNC (3 << 2) | ||
| 385 | |||
| 386 | #define USB_ENDPOINT_XFERTYPE_MASK 0x03 /* in bmAttributes */ | 386 | #define USB_ENDPOINT_XFERTYPE_MASK 0x03 /* in bmAttributes */ |
| 387 | #define USB_ENDPOINT_XFER_CONTROL 0 | 387 | #define USB_ENDPOINT_XFER_CONTROL 0 |
| 388 | #define USB_ENDPOINT_XFER_ISOC 1 | 388 | #define USB_ENDPOINT_XFER_ISOC 1 |
| @@ -390,6 +390,17 @@ struct usb_endpoint_descriptor { | |||
| 390 | #define USB_ENDPOINT_XFER_INT 3 | 390 | #define USB_ENDPOINT_XFER_INT 3 |
| 391 | #define USB_ENDPOINT_MAX_ADJUSTABLE 0x80 | 391 | #define USB_ENDPOINT_MAX_ADJUSTABLE 0x80 |
| 392 | 392 | ||
| 393 | #define USB_ENDPOINT_SYNCTYPE 0x0c | ||
| 394 | #define USB_ENDPOINT_SYNC_NONE (0 << 2) | ||
| 395 | #define USB_ENDPOINT_SYNC_ASYNC (1 << 2) | ||
| 396 | #define USB_ENDPOINT_SYNC_ADAPTIVE (2 << 2) | ||
| 397 | #define USB_ENDPOINT_SYNC_SYNC (3 << 2) | ||
| 398 | |||
| 399 | #define USB_ENDPOINT_USAGE_MASK 0x30 | ||
| 400 | #define USB_ENDPOINT_USAGE_DATA 0x00 | ||
| 401 | #define USB_ENDPOINT_USAGE_FEEDBACK 0x10 | ||
| 402 | #define USB_ENDPOINT_USAGE_IMPLICIT_FB 0x20 /* Implicit feedback Data endpoint */ | ||
| 403 | |||
| 393 | /*-------------------------------------------------------------------------*/ | 404 | /*-------------------------------------------------------------------------*/ |
| 394 | 405 | ||
| 395 | /** | 406 | /** |
| @@ -570,6 +581,17 @@ static inline int usb_endpoint_is_isoc_out( | |||
| 570 | return usb_endpoint_xfer_isoc(epd) && usb_endpoint_dir_out(epd); | 581 | return usb_endpoint_xfer_isoc(epd) && usb_endpoint_dir_out(epd); |
| 571 | } | 582 | } |
| 572 | 583 | ||
| 584 | /** | ||
| 585 | * usb_endpoint_maxp - get endpoint's max packet size | ||
| 586 | * @epd: endpoint to be checked | ||
| 587 | * | ||
| 588 | * Returns @epd's max packet | ||
| 589 | */ | ||
| 590 | static inline int usb_endpoint_maxp(const struct usb_endpoint_descriptor *epd) | ||
| 591 | { | ||
| 592 | return le16_to_cpu(epd->wMaxPacketSize); | ||
| 593 | } | ||
| 594 | |||
| 573 | /*-------------------------------------------------------------------------*/ | 595 | /*-------------------------------------------------------------------------*/ |
| 574 | 596 | ||
| 575 | /* USB_DT_SS_ENDPOINT_COMP: SuperSpeed Endpoint Companion descriptor */ | 597 | /* USB_DT_SS_ENDPOINT_COMP: SuperSpeed Endpoint Companion descriptor */ |
| @@ -851,6 +873,18 @@ enum usb_device_speed { | |||
| 851 | USB_SPEED_SUPER, /* usb 3.0 */ | 873 | USB_SPEED_SUPER, /* usb 3.0 */ |
| 852 | }; | 874 | }; |
| 853 | 875 | ||
| 876 | #ifdef __KERNEL__ | ||
| 877 | |||
| 878 | /** | ||
| 879 | * usb_speed_string() - Returns human readable-name of the speed. | ||
| 880 | * @speed: The speed to return human-readable name for. If it's not | ||
| 881 | * any of the speeds defined in usb_device_speed enum, string for | ||
| 882 | * USB_SPEED_UNKNOWN will be returned. | ||
| 883 | */ | ||
| 884 | extern const char *usb_speed_string(enum usb_device_speed speed); | ||
| 885 | |||
| 886 | #endif | ||
| 887 | |||
| 854 | enum usb_device_state { | 888 | enum usb_device_state { |
| 855 | /* NOTATTACHED isn't in the USB spec, and this state acts | 889 | /* NOTATTACHED isn't in the USB spec, and this state acts |
| 856 | * the same as ATTACHED ... but it's clearer this way. | 890 | * the same as ATTACHED ... but it's clearer this way. |
