#include "UhciDebug.h"\r
\r
enum {\r
+ UHC_1_MICROSECOND = 1,\r
+ UHC_1_MILLISECOND = 1000 * UHC_1_MICROSECOND,\r
+ UHC_1_SECOND = 1000 * UHC_1_MILLISECOND,\r
+\r
//\r
- // Stall times\r
+ // UHCI register operation timeout, set by experience\r
//\r
- STALL_1_MS = 1000,\r
- STALL_1_SECOND = 1000 *STALL_1_MS,\r
+ UHC_GENERIC_TIMEOUT = UHC_1_SECOND,\r
\r
- UHC_SYN_POLL = 50,\r
- FORCE_GLOBAL_RESUME_TIME = 20 *STALL_1_MS,\r
- ROOT_PORT_REST_TIME = 50 *STALL_1_MS,\r
- PORT_RESET_RECOVERY_TIME = 10 *STALL_1_MS,\r
- INTERRUPT_POLLING_TIME = 50 * 10000UL,\r
+ //\r
+ // Wait for force global resume(FGR) complete, refers to\r
+ // specification[UHCI11-2.1.1]\r
+ //\r
+ UHC_FORCE_GLOBAL_RESUME_STALL = 20 * UHC_1_MILLISECOND,\r
+\r
+ //\r
+ // Wait for roothub port reset and recovery, reset stall\r
+ // is set by experience, and recovery stall refers to\r
+ // specification[UHCI11-2.1.1]\r
+ //\r
+ UHC_ROOT_PORT_RESET_STALL = 50 * UHC_1_MILLISECOND,\r
+ UHC_ROOT_PORT_RECOVERY_STALL = 10 * UHC_1_MILLISECOND,\r
+\r
+ //\r
+ // Sync and Async transfer polling interval, set by experience,\r
+ // and the unit of Async is 100us.\r
+ //\r
+ UHC_SYNC_POLL_INTERVAL = 50 * UHC_1_MICROSECOND,\r
+ UHC_ASYNC_POLL_INTERVAL = 50 * 10000UL,\r
\r
//\r
// UHC raises TPL to TPL_NOTIFY to serialize all its operations\r
//\r
UHCI_TPL = TPL_NOTIFY,\r
\r
- USB_HC_DEV_SIGNATURE = EFI_SIGNATURE_32 ('u', 'h', 'c', 'i')\r
+ USB_HC_DEV_SIGNATURE = EFI_SIGNATURE_32 ('u', 'h', 'c', 'i')\r
};\r
\r
#pragma pack(1)\r
EFI_USB_HC_PROTOCOL UsbHc;\r
EFI_USB2_HC_PROTOCOL Usb2Hc;\r
EFI_PCI_IO_PROTOCOL *PciIo;\r
+ UINT64 OriginalPciAttributes;\r
\r
//\r
// Schedule data structures\r
VOID *FrameMapping;\r
};\r
\r
-extern EFI_DRIVER_BINDING_PROTOCOL gUhciDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL gUhciComponentName;\r
+extern EFI_DRIVER_BINDING_PROTOCOL gUhciDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL gUhciComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL gUhciComponentName2;\r
\r
#endif\r