]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Usb/UsbBusDxe/UsbHub.c
Make MdeModulePkg GCC clean.
[mirror_edk2.git] / MdeModulePkg / Bus / Usb / UsbBusDxe / UsbHub.c
index 25332f432f90285a6021c37eb5046150e5da79c5..795f545b7712eb59865756eeb6b45abbdd2195d5 100644 (file)
@@ -98,7 +98,7 @@ UsbHubCtrlClearPortFeature (
              USB_HUB_TARGET_PORT,\r
              USB_HUB_REQ_CLEAR_FEATURE,\r
              Feature,\r
-             Port + 1,\r
+             (UINT16) (Port + 1),\r
              NULL,\r
              0\r
              );\r
@@ -140,8 +140,8 @@ UsbHubCtrlClearTTBuffer (
   //\r
   // Check USB2.0 spec page 424 for wValue's encoding\r
   //\r
-  Value = (EpNum & 0x0F) | (DevAddr << 4) |\r
-          ((EpType & 0x03) << 11) | ((EpNum & 0x80) << 15);\r
+  Value = (UINT16) ((EpNum & 0x0F) | (DevAddr << 4) |\r
+          ((EpType & 0x03) << 11) | ((EpNum & 0x80) << 15));\r
 \r
   Status = UsbCtrlRequest (\r
              HubDev,\r
@@ -150,7 +150,7 @@ UsbHubCtrlClearTTBuffer (
              USB_HUB_TARGET_PORT,\r
              USB_HUB_REQ_CLEAR_TT,\r
              Value,\r
-             Port + 1,\r
+             (UINT16) (Port + 1),\r
              NULL,\r
              0\r
              );\r
@@ -265,7 +265,7 @@ UsbHubCtrlGetPortStatus (
              USB_HUB_TARGET_PORT,\r
              USB_HUB_REQ_GET_STATUS,\r
              0,\r
-             Port + 1,\r
+             (UINT16) (Port + 1),\r
              State,\r
              4\r
              );\r
@@ -284,7 +284,6 @@ UsbHubCtrlGetPortStatus (
   @retval Others                Failed to reset the port\r
 \r
 **/\r
-STATIC\r
 EFI_STATUS\r
 UsbHubCtrlResetTT (\r
   IN  USB_DEVICE          *HubDev,\r
@@ -300,7 +299,7 @@ UsbHubCtrlResetTT (
              USB_HUB_TARGET_HUB,\r
              USB_HUB_REQ_RESET_TT,\r
              0,\r
-             Port + 1,\r
+             (UINT16) (Port + 1),\r
              NULL,\r
              0\r
              );\r
@@ -319,7 +318,6 @@ UsbHubCtrlResetTT (
   @retval Others                Failed to set the feature\r
 \r
 **/\r
-STATIC\r
 EFI_STATUS\r
 UsbHubCtrlSetHubFeature (\r
   IN  USB_DEVICE          *HubDev,\r
@@ -376,7 +374,7 @@ UsbHubCtrlSetPortFeature (
              USB_HUB_TARGET_PORT,\r
              USB_HUB_REQ_SET_FEATURE,\r
              Feature,\r
-             Port + 1,\r
+             (UINT16) (Port + 1),\r
              NULL,\r
              0\r
              );\r
@@ -553,7 +551,7 @@ UsbOnHubInterrupt (
                       );\r
 \r
     if (EFI_ERROR (Status)) {\r
-      USB_ERROR (("UsbOnHubInterrupt: failed to remove async transfer - %r\n", Status));\r
+      DEBUG (( EFI_D_ERROR, "UsbOnHubInterrupt: failed to remove async transfer - %r\n", Status));\r
       return Status;\r
     }\r
 \r
@@ -568,7 +566,7 @@ UsbOnHubInterrupt (
                       );\r
 \r
     if (EFI_ERROR (Status)) {\r
-      USB_ERROR (("UsbOnHubInterrupt: failed to submit new async transfer - %r\n", Status));\r
+      DEBUG (( EFI_D_ERROR, "UsbOnHubInterrupt: failed to submit new async transfer - %r\n", Status));\r
     }\r
 \r
     return Status;\r
@@ -668,20 +666,20 @@ UsbHubInit (
   }\r
 \r
   if (Index == Setting->Desc.NumEndpoints) {\r
-    USB_ERROR (("UsbHubInit: no interrupt endpoint found for hub %d\n", HubDev->Address));\r
+    DEBUG (( EFI_D_ERROR, "UsbHubInit: no interrupt endpoint found for hub %d\n", HubDev->Address));\r
     return EFI_DEVICE_ERROR;\r
   }\r
 \r
   Status = UsbHubReadDesc (HubDev, &HubDesc);\r
 \r
   if (EFI_ERROR (Status)) {\r
-    USB_ERROR (("UsbHubInit: failed to read HUB descriptor %r\n", Status));\r
+    DEBUG (( EFI_D_ERROR, "UsbHubInit: failed to read HUB descriptor %r\n", Status));\r
     return Status;\r
   }\r
 \r
   HubIf->NumOfPort = HubDesc.NumPorts;\r
 \r
-  USB_DEBUG (("UsbHubInit: hub %d has %d ports\n", HubDev->Address,HubIf->NumOfPort));\r
+  DEBUG (( EFI_D_INFO, "UsbHubInit: hub %d has %d ports\n", HubDev->Address,HubIf->NumOfPort));\r
 \r
   //\r
   // Create an event to enumerate the hub's port. On\r
@@ -695,7 +693,7 @@ UsbHubInit (
                   );\r
 \r
   if (EFI_ERROR (Status)) {\r
-    USB_ERROR (("UsbHubInit: failed to create signal for hub %d - %r\n",\r
+    DEBUG (( EFI_D_ERROR, "UsbHubInit: failed to create signal for hub %d - %r\n",\r
                 HubDev->Address, Status));\r
 \r
     return Status;\r
@@ -720,7 +718,7 @@ UsbHubInit (
                     );\r
 \r
   if (EFI_ERROR (Status)) {\r
-    USB_ERROR (("UsbHubInit: failed to queue interrupt transfer for hub %d - %r\n",\r
+    DEBUG (( EFI_D_ERROR, "UsbHubInit: failed to queue interrupt transfer for hub %d - %r\n",\r
                 HubDev->Address, Status));\r
 \r
     gBS->CloseEvent (HubIf->HubNotify);\r
@@ -744,13 +742,13 @@ UsbHubInit (
   // for both gang/individual powered hubs.\r
   //\r
   for (Index = 0; Index < HubDesc.NumPorts; Index++) {\r
-    UsbHubCtrlSetPortFeature (HubIf->Device, Index, USB_HUB_PORT_POWER);\r
+    UsbHubCtrlSetPortFeature (HubIf->Device, Index, (EFI_USB_PORT_FEATURE) USB_HUB_PORT_POWER);\r
   }\r
 \r
   gBS->Stall (HubDesc.PwrOn2PwrGood * 2 * USB_STALL_1_MS);\r
   UsbHubAckHubStatus (HubIf->Device);\r
 \r
-  USB_DEBUG (("UsbHubInit: hub %d initialized\n", HubDev->Address));\r
+  DEBUG (( EFI_D_INFO, "UsbHubInit: hub %d initialized\n", HubDev->Address));\r
   return Status;\r
 }\r
 \r
@@ -852,7 +850,7 @@ UsbHubSetPortFeature (
 {\r
   EFI_STATUS              Status;\r
 \r
-  Status = UsbHubCtrlSetPortFeature (HubIf->Device, Port, Feature);\r
+  Status = UsbHubCtrlSetPortFeature (HubIf->Device, Port, (UINT8) Feature);\r
 \r
   return Status;\r
 }\r
@@ -879,7 +877,7 @@ UsbHubClearPortFeature (
 {\r
   EFI_STATUS              Status;\r
 \r
-  Status = UsbHubCtrlClearPortFeature (HubIf->Device, Port, Feature);\r
+  Status = UsbHubCtrlClearPortFeature (HubIf->Device, Port, (UINT8) Feature);\r
 \r
   return Status;\r
 }\r
@@ -907,7 +905,7 @@ UsbHubResetPort (
   UINTN                   Index;\r
   EFI_STATUS              Status;\r
 \r
-  Status  = UsbHubSetPortFeature (HubIf, Port, USB_HUB_PORT_RESET);\r
+  Status  = UsbHubSetPortFeature (HubIf, Port, (EFI_USB_PORT_FEATURE) USB_HUB_PORT_RESET);\r
 \r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
@@ -979,7 +977,7 @@ UsbHubRelease (
   HubIf->HubEp      = NULL;\r
   HubIf->HubNotify  = NULL;\r
 \r
-  USB_DEBUG (("UsbHubRelease: hub device %d released\n", HubIf->Device->Address));\r
+  DEBUG (( EFI_D_INFO, "UsbHubRelease: hub device %d released\n", HubIf->Device->Address));\r
   return EFI_SUCCESS;\r
 }\r
 \r
@@ -1011,7 +1009,7 @@ UsbRootHubInit (
     return Status;\r
   }\r
 \r
-  USB_DEBUG (("UsbRootHubInit: root hub %x - max speed %d, %d ports\n",\r
+  DEBUG (( EFI_D_INFO, "UsbRootHubInit: root hub %x - max speed %d, %d ports\n",\r
               HubIf, MaxSpeed, NumOfPort));\r
 \r
   HubIf->IsHub      = TRUE;\r
@@ -1036,6 +1034,12 @@ UsbRootHubInit (
     return Status;\r
   }\r
 \r
+  //\r
+  // It should signal the event immediately here, or device detection\r
+  // by bus enumeration might be delayed by the timer interval.\r
+  //\r
+  gBS->SignalEvent (HubIf->HubNotify);\r
+\r
   Status = gBS->SetTimer (\r
                   HubIf->HubNotify,\r
                   TimerPeriodic,\r
@@ -1121,7 +1125,7 @@ UsbRootHubClearPortChange (
     Map = &mRootHubFeatureMap[Index];\r
 \r
     if (USB_BIT_IS_SET (PortState.PortChangeStatus, Map->ChangedBit)) {\r
-      UsbHcClearRootHubPortFeature (HubIf->Device->Bus, Port, Map->Feature);\r
+      UsbHcClearRootHubPortFeature (HubIf->Device->Bus, Port, (EFI_USB_PORT_FEATURE) Map->Feature);\r
     }\r
   }\r
 }\r
@@ -1216,7 +1220,7 @@ UsbRootHubResetPort (
   Status  = UsbHcSetRootHubPortFeature (Bus, Port, EfiUsbPortReset);\r
 \r
   if (EFI_ERROR (Status)) {\r
-    USB_ERROR (("UsbRootHubResetPort: failed to start reset on port %d\n", Port));\r
+    DEBUG (( EFI_D_ERROR, "UsbRootHubResetPort: failed to start reset on port %d\n", Port));\r
     return Status;\r
   }\r
 \r
@@ -1229,7 +1233,7 @@ UsbRootHubResetPort (
   Status = UsbHcClearRootHubPortFeature (Bus, Port, EfiUsbPortReset);\r
 \r
   if (EFI_ERROR (Status)) {\r
-    USB_ERROR (("UsbRootHubResetPort: failed to clear reset on port %d\n", Port));\r
+    DEBUG (( EFI_D_ERROR, "UsbRootHubResetPort: failed to clear reset on port %d\n", Port));\r
     return Status;\r
   }\r
 \r
@@ -1256,7 +1260,7 @@ UsbRootHubResetPort (
   }\r
 \r
   if (Index == USB_HUB_LOOP) {\r
-    USB_ERROR (("UsbRootHubResetPort: reset not finished in time on port %d\n", Port));\r
+    DEBUG (( EFI_D_ERROR, "UsbRootHubResetPort: reset not finished in time on port %d\n", Port));\r
     return EFI_TIMEOUT;\r
   }\r
 \r
@@ -1268,7 +1272,7 @@ UsbRootHubResetPort (
     // automatically enable the port, we need to enable it manually.\r
     //\r
     if (RootIf->MaxSpeed == EFI_USB_SPEED_HIGH) {\r
-      USB_ERROR (("UsbRootHubResetPort: release low/full speed device (%d) to UHCI\n", Port));\r
+      DEBUG (( EFI_D_ERROR, "UsbRootHubResetPort: release low/full speed device (%d) to UHCI\n", Port));\r
 \r
       UsbRootHubSetPortFeature (RootIf, Port, EfiUsbPortOwner);\r
       return EFI_NOT_FOUND;\r
@@ -1278,7 +1282,7 @@ UsbRootHubResetPort (
       Status = UsbRootHubSetPortFeature (RootIf, Port, EfiUsbPortEnable);\r
 \r
       if (EFI_ERROR (Status)) {\r
-        USB_ERROR (("UsbRootHubResetPort: failed to enable port %d for UHCI\n", Port));\r
+        DEBUG (( EFI_D_ERROR, "UsbRootHubResetPort: failed to enable port %d for UHCI\n", Port));\r
         return Status;\r
       }\r
 \r
@@ -1305,7 +1309,7 @@ UsbRootHubRelease (
   IN USB_INTERFACE        *HubIf\r
   )\r
 {\r
-  USB_DEBUG (("UsbRootHubRelease: root hub released for hub %x\n", HubIf));\r
+  DEBUG (( EFI_D_INFO, "UsbRootHubRelease: root hub released for hub %x\n", HubIf));\r
 \r
   gBS->SetTimer (HubIf->HubNotify, TimerCancel, USB_ROOTHUB_POLL_INTERVAL);\r
   gBS->CloseEvent (HubIf->HubNotify);\r