]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Bus/Usb/UsbBus/Dxe/usbbus.c
Make EdkModulePkg pass Intel IPF compiler with /W4 /WX switches, solving warning...
[mirror_edk2.git] / EdkModulePkg / Bus / Usb / UsbBus / Dxe / usbbus.c
index d9387a60b1171f0dc578c540068da7fa1bfd9e00..e1fdce7997108f1ce306d98510a60fef5b04271c 100644 (file)
@@ -34,41 +34,11 @@ GLOBAL_REMOVE_IF_UNREFERENCED    UINTN    gUSBErrorLevel  = EFI_D_ERROR;
 //\r
 STATIC EFI_GUID             mUsbBusProtocolGuid = EFI_USB_BUS_PROTOCOL_GUID;\r
 \r
-\r
-\r
-//\r
-// EFI_DRIVER_BINDING_PROTOCOL Protocol Interface\r
-//\r
-EFI_STATUS\r
-EFIAPI\r
-UsbBusControllerDriverSupported (\r
-  IN EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN EFI_HANDLE                      Controller,\r
-  IN EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
-  );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-UsbBusControllerDriverStart (\r
-  IN EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN EFI_HANDLE                      Controller,\r
-  IN EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
-  );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-UsbBusControllerDriverStop (\r
-  IN EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN EFI_HANDLE                      Controller,\r
-  IN UINTN                           NumberOfChildren,\r
-  IN EFI_HANDLE                      *ChildHandleBuffer\r
-  );\r
-\r
 EFI_DRIVER_BINDING_PROTOCOL gUsbBusDriverBinding = {\r
   UsbBusControllerDriverSupported,\r
   UsbBusControllerDriverStart,\r
   UsbBusControllerDriverStop,\r
-  0x10,\r
+  0xa,\r
   NULL,\r
   NULL\r
 };\r
@@ -84,14 +54,6 @@ ReportUsbStatusCode (
   IN EFI_STATUS_CODE_VALUE         Code\r
   );\r
 \r
-//\r
-// Supported function\r
-//\r
-VOID\r
-InitializeUsbIoInstance (\r
-  IN USB_IO_CONTROLLER_DEVICE     *UsbIoController\r
-  );\r
-\r
 STATIC\r
 USB_IO_CONTROLLER_DEVICE    *\r
 CreateUsbIoControllerDevice (\r
@@ -162,6 +124,7 @@ ReleasePortToCHC (
   UINT8                     PortNum\r
   );\r
 \r
+STATIC\r
 EFI_STATUS\r
 ResetRootPort (\r
   IN USB_BUS_CONTROLLER_DEVICE *UsbBusDev,\r
@@ -169,6 +132,7 @@ ResetRootPort (
   IN UINT8                     RetryTimes\r
   );\r
 \r
+STATIC\r
 EFI_STATUS\r
 ResetHubPort (\r
   IN USB_IO_CONTROLLER_DEVICE    *UsbIoController,\r
@@ -213,7 +177,7 @@ UsbAllocateAddress (
         //\r
         // Found one, covert to address, and mark it use\r
         //\r
-        AddressPool[ByteIndex] |= (1 << BitIndex);\r
+        AddressPool[ByteIndex] = (UINT8) (AddressPool[ByteIndex] | (1 << BitIndex));\r
         return (UINT8) (ByteIndex * 8 + BitIndex);\r
       }\r
     }\r
@@ -251,7 +215,7 @@ UsbFreeAddress (
   WhichByte = (UINT8) (DevAddress / 8);\r
   WhichBit  = (UINT8) (DevAddress & 0x7);\r
 \r
-  AddressPool[WhichByte] &= (~(1 << WhichBit));\r
+  AddressPool[WhichByte] = (UINT8) (AddressPool[WhichByte] & (~(1 << WhichBit)));\r
 }\r
 \r
 EFI_STATUS\r
@@ -1001,7 +965,9 @@ UsbDeviceConfiguration (
   //\r
   UsbIo = &FirstController->UsbIo;\r
 \r
-  ParentPortReset (FirstController, FALSE, 0);\r
+  if (UsbIoDevice->DeviceSpeed != EFI_USB_SPEED_HIGH) {\r
+    ParentPortReset (FirstController, FALSE, 0);\r
+  }\r
 \r
   //\r
   // First retrieve the 1st 8 bytes of\r
@@ -1274,6 +1240,7 @@ UsbDeviceDeConfiguration (
   USB_IO_DEVICE             *ChildDevice;\r
   UINT8                     Index;\r
   EFI_USB_IO_PROTOCOL       *UsbIo;\r
+  EFI_STATUS                Status;\r
 \r
   //\r
   // Double check UsbIoDevice exists\r
@@ -1363,14 +1330,17 @@ UsbDeviceDeConfiguration (
     // Uninstall EFI_USB_IO_PROTOCOL & DEVICE_PATH_PROTOCOL\r
     // installed on this handle\r
     //\r
-    gBS->UninstallMultipleProtocolInterfaces (\r
-          UsbController->Handle,\r
-          &gEfiDevicePathProtocolGuid,\r
-          UsbController->DevicePath,\r
-          &gEfiUsbIoProtocolGuid,\r
-          &UsbController->UsbIo,\r
-          NULL\r
-          );\r
+    Status = gBS->UninstallMultipleProtocolInterfaces (\r
+                    UsbController->Handle,\r
+                    &gEfiDevicePathProtocolGuid,\r
+                    UsbController->DevicePath,\r
+                    &gEfiUsbIoProtocolGuid,\r
+                    &UsbController->UsbIo,\r
+                    NULL\r
+                    );\r
+    if (EFI_ERROR (Status)) {\r
+      return Status;\r
+    }\r
 \r
     if (UsbController->DevicePath != NULL) {\r
       gBS->FreePool (UsbController->DevicePath);\r
@@ -2271,7 +2241,7 @@ ParentPortReset (
     ResetRootPort (ParentIoDev->BusController, HubPort, RetryTimes);\r
   } else {\r
     DEBUG ((gUSBDebugLevel, "Reset from Hub, Addr 0x%x\n", ParentIoDev->DeviceAddress));\r
-    ResetHubPort (ParentController, HubPort + 1);\r
+    ResetHubPort (ParentController, (UINT8) (HubPort + 1));\r
   }\r
   //\r
   // If we only need port reset, just return\r
@@ -2343,6 +2313,7 @@ UsbPortReset (
   return ParentPortReset (UsbIoController, TRUE, 0);\r
 }\r
 \r
+STATIC\r
 EFI_STATUS\r
 ResetRootPort (\r
   IN USB_BUS_CONTROLLER_DEVICE *UsbBusDev,\r
@@ -2435,6 +2406,7 @@ ResetRootPort (
   return EFI_SUCCESS;\r
 }\r
 \r
+STATIC\r
 EFI_STATUS\r
 ResetHubPort (\r
   IN USB_IO_CONTROLLER_DEVICE    *UsbIoController,\r
@@ -2574,16 +2546,13 @@ IsDeviceDisconnected (
 --*/\r
 {\r
   USB_IO_DEVICE             *ParentIoDev;\r
-  USB_IO_DEVICE             *UsbIoDev;\r
   USB_IO_CONTROLLER_DEVICE  *ParentController;\r
   UINT8                     HubPort;\r
   EFI_STATUS                Status;\r
-  EFI_USB_IO_PROTOCOL       *UsbIo;\r
   EFI_USB_PORT_STATUS       PortStatus;\r
 \r
   ParentController  = UsbIoController->Parent;\r
   ParentIoDev       = ParentController->UsbDevice;\r
-  UsbIoDev          = UsbIoController->UsbDevice;\r
   HubPort           = UsbIoController->ParentPort;\r
 \r
   if (ParentIoDev->DeviceAddress == 1) {\r
@@ -2597,10 +2566,9 @@ IsDeviceDisconnected (
       );\r
 \r
   } else {\r
-    UsbIo = &UsbIoController->UsbIo;\r
     Status = HubGetPortStatus (\r
               &ParentController->UsbIo,\r
-              HubPort + 1,\r
+              (UINT8) (HubPort + 1),\r
               (UINT32 *) &PortStatus\r
               );\r
 \r
@@ -3302,7 +3270,7 @@ UsbVirtualHcControlTransfer (
                                           TransferResult\r
                                           );\r
   } else {\r
-    IsSlowDevice = (EFI_USB_SPEED_LOW == DeviceSpeed) ? TRUE : FALSE;\r
+    IsSlowDevice = (BOOLEAN) ((EFI_USB_SPEED_LOW == DeviceSpeed) ? TRUE : FALSE);\r
     Status = UsbBusDev->UsbHCInterface->ControlTransfer (\r
                                           UsbBusDev->UsbHCInterface,\r
                                           DeviceAddress,\r
@@ -3524,7 +3492,7 @@ UsbVirtualHcAsyncInterruptTransfer (
                                           Context\r
                                           );\r
   } else {\r
-    IsSlowDevice = (EFI_USB_SPEED_LOW == DeviceSpeed) ? TRUE : FALSE;\r
+    IsSlowDevice = (BOOLEAN) ((EFI_USB_SPEED_LOW == DeviceSpeed) ? TRUE : FALSE);\r
     Status = UsbBusDev->UsbHCInterface->AsyncInterruptTransfer (\r
                                           UsbBusDev->UsbHCInterface,\r
                                           DeviceAddress,\r
@@ -3633,7 +3601,7 @@ UsbVirtualHcSyncInterruptTransfer (
                                           TransferResult\r
                                           );\r
   } else {\r
-    IsSlowDevice = (EFI_USB_SPEED_LOW == DeviceSpeed) ? TRUE : FALSE;\r
+    IsSlowDevice = (BOOLEAN) ((EFI_USB_SPEED_LOW == DeviceSpeed) ? TRUE : FALSE);\r
     Status = UsbBusDev->UsbHCInterface->SyncInterruptTransfer (\r
                                           UsbBusDev->UsbHCInterface,\r
                                           DeviceAddress,\r