diff options
-rw-r--r-- | drivers/usb/core/hcd.h | 2 | ||||
-rw-r--r-- | drivers/usb/core/hub.h | 8 | ||||
-rw-r--r-- | include/linux/usb/ch9.h | 14 |
3 files changed, 18 insertions, 6 deletions
diff --git a/drivers/usb/core/hcd.h b/drivers/usb/core/hcd.h index 2d1c3d5e47b8..2c086b8460b1 100644 --- a/drivers/usb/core/hcd.h +++ b/drivers/usb/core/hcd.h | |||
@@ -28,7 +28,7 @@ | |||
28 | /* | 28 | /* |
29 | * USB Packet IDs (PIDs) | 29 | * USB Packet IDs (PIDs) |
30 | */ | 30 | */ |
31 | #define USB_PID_UNDEF_0 0xf0 | 31 | #define USB_PID_EXT 0xf0 /* USB 2.0 LPM ECN */ |
32 | #define USB_PID_OUT 0xe1 | 32 | #define USB_PID_OUT 0xe1 |
33 | #define USB_PID_ACK 0xd2 | 33 | #define USB_PID_ACK 0xd2 |
34 | #define USB_PID_DATA0 0xc3 | 34 | #define USB_PID_DATA0 0xc3 |
diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h index 1551aed65e05..d672cd81a3e4 100644 --- a/drivers/usb/core/hub.h +++ b/drivers/usb/core/hub.h | |||
@@ -41,9 +41,10 @@ | |||
41 | */ | 41 | */ |
42 | #define USB_PORT_FEAT_CONNECTION 0 | 42 | #define USB_PORT_FEAT_CONNECTION 0 |
43 | #define USB_PORT_FEAT_ENABLE 1 | 43 | #define USB_PORT_FEAT_ENABLE 1 |
44 | #define USB_PORT_FEAT_SUSPEND 2 | 44 | #define USB_PORT_FEAT_SUSPEND 2 /* L2 suspend */ |
45 | #define USB_PORT_FEAT_OVER_CURRENT 3 | 45 | #define USB_PORT_FEAT_OVER_CURRENT 3 |
46 | #define USB_PORT_FEAT_RESET 4 | 46 | #define USB_PORT_FEAT_RESET 4 |
47 | #define USB_PORT_FEAT_L1 5 /* L1 suspend */ | ||
47 | #define USB_PORT_FEAT_POWER 8 | 48 | #define USB_PORT_FEAT_POWER 8 |
48 | #define USB_PORT_FEAT_LOWSPEED 9 | 49 | #define USB_PORT_FEAT_LOWSPEED 9 |
49 | #define USB_PORT_FEAT_HIGHSPEED 10 | 50 | #define USB_PORT_FEAT_HIGHSPEED 10 |
@@ -54,6 +55,7 @@ | |||
54 | #define USB_PORT_FEAT_C_RESET 20 | 55 | #define USB_PORT_FEAT_C_RESET 20 |
55 | #define USB_PORT_FEAT_TEST 21 | 56 | #define USB_PORT_FEAT_TEST 21 |
56 | #define USB_PORT_FEAT_INDICATOR 22 | 57 | #define USB_PORT_FEAT_INDICATOR 22 |
58 | #define USB_PORT_FEAT_C_PORT_L1 23 | ||
57 | 59 | ||
58 | /* | 60 | /* |
59 | * Hub Status and Hub Change results | 61 | * Hub Status and Hub Change results |
@@ -73,7 +75,8 @@ struct usb_port_status { | |||
73 | #define USB_PORT_STAT_SUSPEND 0x0004 | 75 | #define USB_PORT_STAT_SUSPEND 0x0004 |
74 | #define USB_PORT_STAT_OVERCURRENT 0x0008 | 76 | #define USB_PORT_STAT_OVERCURRENT 0x0008 |
75 | #define USB_PORT_STAT_RESET 0x0010 | 77 | #define USB_PORT_STAT_RESET 0x0010 |
76 | /* bits 5 to 7 are reserved */ | 78 | #define USB_PORT_STAT_L1 0x0020 |
79 | /* bits 6 to 7 are reserved */ | ||
77 | #define USB_PORT_STAT_POWER 0x0100 | 80 | #define USB_PORT_STAT_POWER 0x0100 |
78 | #define USB_PORT_STAT_LOW_SPEED 0x0200 | 81 | #define USB_PORT_STAT_LOW_SPEED 0x0200 |
79 | #define USB_PORT_STAT_HIGH_SPEED 0x0400 | 82 | #define USB_PORT_STAT_HIGH_SPEED 0x0400 |
@@ -91,6 +94,7 @@ struct usb_port_status { | |||
91 | #define USB_PORT_STAT_C_SUSPEND 0x0004 | 94 | #define USB_PORT_STAT_C_SUSPEND 0x0004 |
92 | #define USB_PORT_STAT_C_OVERCURRENT 0x0008 | 95 | #define USB_PORT_STAT_C_OVERCURRENT 0x0008 |
93 | #define USB_PORT_STAT_C_RESET 0x0010 | 96 | #define USB_PORT_STAT_C_RESET 0x0010 |
97 | #define USB_PORT_STAT_C_L1 0x0020 | ||
94 | 98 | ||
95 | /* | 99 | /* |
96 | * wHubCharacteristics (masks) | 100 | * wHubCharacteristics (masks) |
diff --git a/include/linux/usb/ch9.h b/include/linux/usb/ch9.h index 7e1da17ca7ce..61fcbc2b97da 100644 --- a/include/linux/usb/ch9.h +++ b/include/linux/usb/ch9.h | |||
@@ -66,8 +66,8 @@ | |||
66 | #define USB_RECIP_ENDPOINT 0x02 | 66 | #define USB_RECIP_ENDPOINT 0x02 |
67 | #define USB_RECIP_OTHER 0x03 | 67 | #define USB_RECIP_OTHER 0x03 |
68 | /* From Wireless USB 1.0 */ | 68 | /* From Wireless USB 1.0 */ |
69 | #define USB_RECIP_PORT 0x04 | 69 | #define USB_RECIP_PORT 0x04 |
70 | #define USB_RECIP_RPIPE 0x05 | 70 | #define USB_RECIP_RPIPE 0x05 |
71 | 71 | ||
72 | /* | 72 | /* |
73 | * Standard requests, for the bRequest field of a SETUP packet. | 73 | * Standard requests, for the bRequest field of a SETUP packet. |
@@ -102,10 +102,16 @@ | |||
102 | #define USB_REQ_LOOPBACK_DATA_READ 0x16 | 102 | #define USB_REQ_LOOPBACK_DATA_READ 0x16 |
103 | #define USB_REQ_SET_INTERFACE_DS 0x17 | 103 | #define USB_REQ_SET_INTERFACE_DS 0x17 |
104 | 104 | ||
105 | /* The Link Power Mangement (LPM) ECN defines USB_REQ_TEST_AND_SET command, | ||
106 | * used by hubs to put ports into a new L1 suspend state, except that it | ||
107 | * forgot to define its number ... | ||
108 | */ | ||
109 | |||
105 | /* | 110 | /* |
106 | * USB feature flags are written using USB_REQ_{CLEAR,SET}_FEATURE, and | 111 | * USB feature flags are written using USB_REQ_{CLEAR,SET}_FEATURE, and |
107 | * are read as a bit array returned by USB_REQ_GET_STATUS. (So there | 112 | * are read as a bit array returned by USB_REQ_GET_STATUS. (So there |
108 | * are at most sixteen features of each type.) | 113 | * are at most sixteen features of each type.) Hubs may also support a |
114 | * new USB_REQ_TEST_AND_SET_FEATURE to put ports into L1 suspend. | ||
109 | */ | 115 | */ |
110 | #define USB_DEVICE_SELF_POWERED 0 /* (read only) */ | 116 | #define USB_DEVICE_SELF_POWERED 0 /* (read only) */ |
111 | #define USB_DEVICE_REMOTE_WAKEUP 1 /* dev may initiate wakeup */ | 117 | #define USB_DEVICE_REMOTE_WAKEUP 1 /* dev may initiate wakeup */ |
@@ -575,6 +581,8 @@ enum usb_device_state { | |||
575 | /* NOTE: there are actually four different SUSPENDED | 581 | /* NOTE: there are actually four different SUSPENDED |
576 | * states, returning to POWERED, DEFAULT, ADDRESS, or | 582 | * states, returning to POWERED, DEFAULT, ADDRESS, or |
577 | * CONFIGURED respectively when SOF tokens flow again. | 583 | * CONFIGURED respectively when SOF tokens flow again. |
584 | * At this level there's no difference between L1 and L2 | ||
585 | * suspend states. (L2 being original USB 1.1 suspend.) | ||
578 | */ | 586 | */ |
579 | }; | 587 | }; |
580 | 588 | ||