]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Bus/Pci/Ehci/Dxe/Ehci.c
Fix component name bugs when input Controller Name is invalid
[mirror_edk2.git] / EdkModulePkg / Bus / Pci / Ehci / Dxe / Ehci.c
index c6105eb0b545952ea47fa3680337ea3579152aa3..2d6dc838a4a71218ae68bf23498b71b332127317 100644 (file)
@@ -218,13 +218,11 @@ EFI_DRIVER_BINDING_PROTOCOL gEhciDriverBinding = {
   EhciDriverBindingSupported,\r
   EhciDriverBindingStart,\r
   EhciDriverBindingStop,\r
-  0x10,\r
+  0xa,\r
   NULL,\r
   NULL\r
 };\r
 \r
-UINT32                      mUsbCapabilityLen;\r
-UINT32                      mDeviceSpeed[16];\r
 \r
 EFI_STATUS\r
 EFIAPI\r
@@ -441,6 +439,13 @@ EhciDriverBindingStart (
     Status = EFI_DEVICE_ERROR;\r
     goto uninstall_usb2hc_protocol;\r
   }\r
+\r
+  ClearLegacySupport (HcDev);\r
+  HostReset (HcDev);\r
+\r
+  DEBUG_CODE (\r
+   DumpEHCIPortsStatus (HcDev);\r
+  );\r
   \r
   //\r
   // Create and Init Perodic Frame List\r
@@ -1276,9 +1281,9 @@ EhciGetRootHubPortStatus (
     // Not Low Speed Device Attached\r
     //\r
     if ((PORTSC_CCS & PortStatusControlReg) && (PORTSC_CSC & PortStatusControlReg)) {\r
-      mDeviceSpeed[PortNumber] = IsHighSpeedDevice (This, PortNumber) ? USB_PORT_STAT_HIGH_SPEED : 0;\r
+      HcDev->DeviceSpeed[PortNumber] = IsHighSpeedDevice (This, PortNumber) ? USB_PORT_STAT_HIGH_SPEED : 0;\r
     }\r
-    PortStatus->PortStatus |= mDeviceSpeed[PortNumber];\r
+    PortStatus->PortStatus |= HcDev->DeviceSpeed[PortNumber];\r
   }\r
   //\r
   // Fill Port Status Change bits\r
@@ -1403,7 +1408,7 @@ EhciSetRootHubPortFeature (
       }\r
       Status = WaitForEhcNotHalt (HcDev, EHCI_GENERIC_TIMEOUT);\r
       if (EFI_ERROR (Status)) {\r
-        DEBUG ((gEHCDebugLevel, "WaitForEhcNotHalt TimeOut\n"));\r
+        DEBUG ((gEHCDebugLevel, "EHCI: WaitForEhcNotHalt TimeOut\n"));\r
         Status = EFI_DEVICE_ERROR;\r
         goto exit;\r
       }\r