\r
//\r
// Roothub and hub's polling interval, set by experience,\r
-// The unit of roothub is 100us, means 1s as interval, and\r
+// The unit of roothub is 100us, means 100ms as interval, and\r
// the unit of hub is 1ms, means 64ms as interval.\r
//\r
-#define USB_ROOTHUB_POLL_INTERVAL (1000 * 10000U)\r
+#define USB_ROOTHUB_POLL_INTERVAL (100 * 10000U)\r
#define USB_HUB_POLL_INTERVAL 64\r
\r
//\r
//\r
// Wait for port statue reg change, set by experience\r
//\r
-#define USB_WAIT_PORT_STS_CHANGE_STALL (5 * USB_BUS_1_MILLISECOND)\r
+#define USB_WAIT_PORT_STS_CHANGE_STALL (100)\r
\r
//\r
// Wait for set device address, refers to specification\r
// [USB20-9.2.6.3, it says 2ms]\r
//\r
-#define USB_SET_DEVICE_ADDRESS_STALL (20 * USB_BUS_1_MILLISECOND)\r
+#define USB_SET_DEVICE_ADDRESS_STALL (2 * USB_BUS_1_MILLISECOND)\r
\r
//\r
// Wait for retry max packet size, set by experience\r
// [USB20-7.1.7.5, it says 10ms for hub and 50ms for\r
// root hub]\r
//\r
+// According to USB2.0, Chapter 11.5.1.5 Resetting,\r
+// the worst case for TDRST is 20ms\r
+//\r
#define USB_SET_PORT_RESET_STALL (20 * USB_BUS_1_MILLISECOND)\r
#define USB_SET_ROOT_PORT_RESET_STALL (50 * USB_BUS_1_MILLISECOND)\r
\r
+//\r
+// Wait for port recovery to accept SetAddress, refers to specification\r
+// [USB20-7.1.7.5, it says 10 ms for TRSTRCY]\r
+//\r
+#define USB_SET_PORT_RECOVERY_STALL (10 * USB_BUS_1_MILLISECOND)\r
+\r
//\r
// Wait for clear roothub port reset, set by experience\r
//\r
USB_INTERFACE *ParentIf;\r
UINT8 ParentPort; // Start at 0\r
UINT8 Tier;\r
+ BOOLEAN DisconnectFail;\r
};\r
\r
//\r