]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Pci/EhciDxe/Ehci.h
modify coding style to pass ecc tool
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / EhciDxe / Ehci.h
index 7eb61be05afa443eab5f7336b45fe455008d5e83..ec2e913dc0e4fce1962056d8985173647d7006df 100644 (file)
@@ -1,5 +1,7 @@
 /** @file\r
 \r
+  Provides some data struct used by EHCI controller driver.\r
+\r
 Copyright (c) 2006 - 2007, Intel Corporation\r
 All rights reserved. This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
@@ -9,15 +11,6 @@ http://opensource.org/licenses/bsd-license.php
 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
-Module Name:\r
-\r
-    Ehci.h\r
-\r
-Abstract:\r
-\r
-\r
-Revision History\r
-\r
 **/\r
 \r
 #ifndef _EFI_EHCI_H_\r
@@ -36,7 +29,7 @@ Revision History
 #include <Library/UefiLib.h>\r
 #include <Library/BaseLib.h>\r
 #include <Library/MemoryAllocationLib.h>\r
-\r
+#include <Library/PcdLib.h>\r
 \r
 #include <IndustryStandard/Pci22.h>\r
 \r
@@ -48,20 +41,38 @@ typedef struct _USB2_HC_DEV  USB2_HC_DEV;
 #include "EhciSched.h"\r
 #include "EhciDebug.h"\r
 \r
-enum {\r
-  USB2_HC_DEV_SIGNATURE     = EFI_SIGNATURE_32 ('e', 'h', 'c', 'i'),\r
-  EHC_STALL_1_MICROSECOND   = 1,\r
-  EHC_STALL_1_MILLISECOND   = 1000 * EHC_STALL_1_MICROSECOND,\r
-  EHC_STALL_1_SECOND        = 1000 * EHC_STALL_1_MILLISECOND,\r
+typedef enum {\r
+  EHC_1_MICROSECOND            = 1,\r
+  EHC_1_MILLISECOND            = 1000 * EHC_1_MICROSECOND,\r
+  EHC_1_SECOND                 = 1000 * EHC_1_MILLISECOND,\r
 \r
-  EHC_SET_PORT_RESET_TIME   = 50 * EHC_STALL_1_MILLISECOND,\r
-  EHC_CLEAR_PORT_RESET_TIME = EHC_STALL_1_MILLISECOND,\r
-  EHC_GENERIC_TIME          = 10 * EHC_STALL_1_MILLISECOND,\r
-  EHC_SYNC_POLL_TIME        = 20 * EHC_STALL_1_MICROSECOND,\r
-  EHC_ASYNC_POLL_TIME       = 50 * 10000UL,                 // The unit of time is 100us\r
+  //\r
+  // EHCI register operation timeout, set by experience\r
+  //\r
+  EHC_RESET_TIMEOUT            = 1 * EHC_1_SECOND,\r
+  EHC_GENERIC_TIMEOUT          = 10 * EHC_1_MILLISECOND,\r
 \r
-  EHC_TPL                   = TPL_NOTIFY\r
-};\r
+  //\r
+  // Wait for roothub port power stable, refers to Spec[EHCI1.0-2.3.9]\r
+  //\r
+  EHC_ROOT_PORT_RECOVERY_STALL = 20 * EHC_1_MILLISECOND,\r
+\r
+  //\r
+  // Sync and Async transfer polling interval, set by experience,\r
+  // and the unit of Async is 100us, means 50ms as interval.\r
+  //\r
+  EHC_SYNC_POLL_INTERVAL       = 20 * EHC_1_MICROSECOND,\r
+  EHC_ASYNC_POLL_INTERVAL      = 50 * 10000U\r
+} EHC_TIMEOUT_EXPERIENCE_VALUE;\r
+\r
+\r
+  //\r
+  // EHC raises TPL to TPL_NOTIFY to serialize all its operations\r
+  // to protect shared data structures.\r
+  //\r
+#define  EHC_TPL                TPL_NOTIFY\r
+\r
+#define  USB2_HC_DEV_SIGNATURE  EFI_SIGNATURE_32 ('e', 'h', 'c', 'i')\r
 \r
 //\r
 //Iterate through the doule linked list. NOT delete safe\r
@@ -94,6 +105,7 @@ struct _USB2_HC_DEV {
   EFI_USB2_HC_PROTOCOL      Usb2Hc;\r
 \r
   EFI_PCI_IO_PROTOCOL       *PciIo;\r
+  UINT64                    OriginalPciAttributes;\r
   USBHC_MEM_POOL            *MemPool;\r
 \r
   //\r