|
@@ -1178,20 +1178,42 @@ extern unsigned int usb_route_string ( struct usb_device *usb );
|
1178
|
1178
|
extern unsigned int usb_depth ( struct usb_device *usb );
|
1179
|
1179
|
extern struct usb_port * usb_root_hub_port ( struct usb_device *usb );
|
1180
|
1180
|
|
1181
|
|
-/** Minimum reset time */
|
|
1181
|
+/** Minimum reset time
|
|
1182
|
+ *
|
|
1183
|
+ * Section 7.1.7.5 of the USB2 specification states that root hub
|
|
1184
|
+ * ports should assert reset signalling for at least 50ms.
|
|
1185
|
+ */
|
1182
|
1186
|
#define USB_RESET_DELAY_MS 50
|
1183
|
1187
|
|
|
1188
|
+/** Reset recovery time
|
|
1189
|
+ *
|
|
1190
|
+ * Section 9.2.6.2 of the USB2 specification states that the
|
|
1191
|
+ * "recovery" interval after a port reset is 10ms.
|
|
1192
|
+ */
|
|
1193
|
+#define USB_RESET_RECOVER_DELAY_MS 10
|
|
1194
|
+
|
1184
|
1195
|
/** Maximum time to wait for a control transaction to complete
|
1185
|
1196
|
*
|
1186
|
|
- * This is a policy decision.
|
|
1197
|
+ * Section 9.2.6.1 of the USB2 specification states that the upper
|
|
1198
|
+ * limit for commands to be processed is 5 seconds.
|
|
1199
|
+ */
|
|
1200
|
+#define USB_CONTROL_MAX_WAIT_MS 5000
|
|
1201
|
+
|
|
1202
|
+/** Set address recovery time
|
|
1203
|
+ *
|
|
1204
|
+ * Section 9.2.6.3 of the USB2 specification states that devices are
|
|
1205
|
+ * allowed a 2ms recovery interval after receiving a new address.
|
1187
|
1206
|
*/
|
1188
|
|
-#define USB_CONTROL_MAX_WAIT_MS 100
|
|
1207
|
+#define USB_SET_ADDRESS_RECOVER_DELAY_MS 2
|
1189
|
1208
|
|
1190
|
1209
|
/** Time to wait for ports to stabilise
|
1191
|
1210
|
*
|
1192
|
|
- * This is a policy decision.
|
|
1211
|
+ * Section 7.1.7.3 of the USB specification states that we must allow
|
|
1212
|
+ * 100ms for devices to signal attachment, and an additional 100ms for
|
|
1213
|
+ * connection debouncing. (This delay is parallelised across all
|
|
1214
|
+ * ports on a hub; we do not delay separately for each port.)
|
1193
|
1215
|
*/
|
1194
|
|
-#define USB_PORT_DELAY_MS 100
|
|
1216
|
+#define USB_PORT_DELAY_MS 200
|
1195
|
1217
|
|
1196
|
1218
|
/** A USB device ID */
|
1197
|
1219
|
struct usb_device_id {
|