]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Bus/Usb/UsbBus/Dxe/hub.c
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / EdkModulePkg / Bus / Usb / UsbBus / Dxe / hub.c
diff --git a/EdkModulePkg/Bus/Usb/UsbBus/Dxe/hub.c b/EdkModulePkg/Bus/Usb/UsbBus/Dxe/hub.c
deleted file mode 100644 (file)
index fd9e673..0000000
+++ /dev/null
@@ -1,507 +0,0 @@
-/*++\r
-\r
-Copyright (c) 2006, 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
-which accompanies this distribution.  The full text of the license may be found at        \r
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-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
-    Hub.c\r
-    \r
-  Abstract:\r
-\r
-    Usb Hub Request\r
-\r
-  Revision History\r
-\r
---*/\r
-\r
-#include "usbbus.h"\r
-\r
-EFI_STATUS\r
-HubGetPortStatus (\r
-  IN  EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  IN  UINT8                   Port,\r
-  OUT UINT32                  *PortStatus\r
-  )\r
-/*++\r
-  \r
-  Routine Description:\r
-    Get a given hub port status\r
-  \r
-  Arguments:\r
-    UsbIo           -   EFI_USB_IO_PROTOCOL instance\r
-    Port            -   Usb hub port number (starting from 1).\r
-    PortStatus      -   Current Hub port status and change status.\r
-    \r
-  Returns:\r
-    EFI_SUCCESS\r
-    EFI_DEVICE\r
-    EFI_TIME_OUT\r
-    EFI_INVALID_PARAMETER\r
-    \r
---*/\r
-{\r
-  EFI_USB_DEVICE_REQUEST  DevReq;\r
-  EFI_STATUS              EfiStatus;\r
-  UINT32                  UsbStatus;\r
-  UINT32                  Timeout;\r
-\r
-  ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
-\r
-  //\r
-  // Fill Device request packet\r
-  //\r
-  DevReq.RequestType  = HUB_GET_PORT_STATUS_REQ_TYPE;\r
-  DevReq.Request      = HUB_GET_PORT_STATUS;\r
-  DevReq.Value        = 0;\r
-  DevReq.Index        = Port;\r
-  DevReq.Length       = sizeof (UINT32);\r
-\r
-  Timeout             = 3000;\r
-\r
-  EfiStatus = UsbIo->UsbControlTransfer (\r
-                      UsbIo,\r
-                      &DevReq,\r
-                      EfiUsbDataIn,\r
-                      Timeout,\r
-                      PortStatus,\r
-                      sizeof (UINT32),\r
-                      &UsbStatus\r
-                      );\r
-\r
-  return EfiStatus;\r
-}\r
-\r
-EFI_STATUS\r
-HubSetPortFeature (\r
-  IN EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  IN UINT8                   Port,\r
-  IN UINT8                   Value\r
-  )\r
-/*++\r
-  \r
-  Routine Description:\r
-    Set specified feature to a give hub port\r
-  \r
-  Arguments:\r
-    UsbIo           -   EFI_USB_IO_PROTOCOL instance\r
-    Port            -   Usb hub port number (starting from 1).\r
-    Value           -   New feature value.\r
-  \r
-  Returns:\r
-    EFI_SUCCESS\r
-    EFI_DEVICE\r
-    EFI_TIME_OUT\r
-    EFI_INVALID_PARAMETER\r
-  \r
---*/\r
-{\r
-  EFI_USB_DEVICE_REQUEST  DevReq;\r
-  EFI_STATUS              EfiStatus;\r
-  UINT32                  UsbStatus;\r
-  UINT32                  Timeout;\r
-\r
-  ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
-\r
-  //\r
-  // Fill Device request packet\r
-  //\r
-  DevReq.RequestType  = HUB_SET_PORT_FEATURE_REQ_TYPE;\r
-  DevReq.Request      = HUB_SET_PORT_FEATURE;\r
-  DevReq.Value        = Value;\r
-  DevReq.Index        = Port;\r
-  DevReq.Length       = 0;\r
-\r
-  Timeout             = 3000;\r
-  EfiStatus = UsbIo->UsbControlTransfer (\r
-                      UsbIo,\r
-                      &DevReq,\r
-                      EfiUsbNoData,\r
-                      Timeout,\r
-                      NULL,\r
-                      0,\r
-                      &UsbStatus\r
-                      );\r
-\r
-  return EfiStatus;\r
-}\r
-\r
-EFI_STATUS\r
-HubClearPortFeature (\r
-  IN EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  IN UINT8                   Port,\r
-  IN UINT8                   Value\r
-  )\r
-/*++\r
-  \r
-  Routine Description:\r
-    Clear a specified feature of a given hub port\r
-  \r
-  Arguments:\r
-    UsbIo           -   EFI_USB_IO_PROTOCOL instance\r
-    Port            -   Usb hub port number (starting from 1).\r
-    Value           -   Feature value that will be cleared from\r
-                        that hub port.\r
-  \r
-  Returns:\r
-    EFI_SUCCESS\r
-    EFI_DEVICE\r
-    EFI_TIME_OUT\r
-    EFI_INVALID_PARAMETER\r
-  \r
---*/\r
-{\r
-  EFI_USB_DEVICE_REQUEST  DevReq;\r
-  EFI_STATUS              EfiStatus;\r
-  UINT32                  UsbStatus;\r
-  UINT32                  Timeout;\r
-\r
-  ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
-\r
-  //\r
-  // Fill Device request packet\r
-  //\r
-  DevReq.RequestType  = HUB_CLEAR_FEATURE_PORT_REQ_TYPE;\r
-  DevReq.Request      = HUB_CLEAR_FEATURE_PORT;\r
-  DevReq.Value        = Value;\r
-  DevReq.Index        = Port;\r
-  DevReq.Length       = 0;\r
-\r
-  Timeout             = 3000;\r
-  EfiStatus = UsbIo->UsbControlTransfer (\r
-                      UsbIo,\r
-                      &DevReq,\r
-                      EfiUsbNoData,\r
-                      Timeout,\r
-                      NULL,\r
-                      0,\r
-                      &UsbStatus\r
-                      );\r
-\r
-  return EfiStatus;\r
-}\r
-\r
-EFI_STATUS\r
-HubGetHubStatus (\r
-  IN  EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  OUT UINT32                  *HubStatus\r
-  )\r
-/*++\r
-  \r
-  Routine Description:\r
-    Get Hub Status\r
-  \r
-  Arguments:\r
-    UsbIo           -   EFI_USB_IO_PROTOCOL instance\r
-    HubStatus       -   Current Hub status and change status.\r
-  \r
-  Returns:\r
-    EFI_SUCCESS\r
-    EFI_DEVICE\r
-    EFI_TIME_OUT\r
-  \r
---*/\r
-{\r
-  EFI_USB_DEVICE_REQUEST  DevReq;\r
-  EFI_STATUS              EfiStatus;\r
-  UINT32                  UsbStatus;\r
-  UINT32                  Timeout;\r
-\r
-  ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
-\r
-  //\r
-  // Fill Device request packet\r
-  //\r
-  DevReq.RequestType  = HUB_GET_HUB_STATUS_REQ_TYPE;\r
-  DevReq.Request      = HUB_GET_HUB_STATUS;\r
-  DevReq.Value        = 0;\r
-  DevReq.Index        = 0;\r
-  DevReq.Length       = sizeof (UINT32);\r
-\r
-  Timeout             = 3000;\r
-  EfiStatus = UsbIo->UsbControlTransfer (\r
-                      UsbIo,\r
-                      &DevReq,\r
-                      EfiUsbDataIn,\r
-                      Timeout,\r
-                      HubStatus,\r
-                      sizeof (UINT32),\r
-                      &UsbStatus\r
-                      );\r
-\r
-  return EfiStatus;\r
-}\r
-\r
-EFI_STATUS\r
-HubSetHubFeature (\r
-  IN EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  IN UINT8                   Value\r
-  )\r
-/*++\r
-  \r
-  Routine Description:\r
-    Set a specified feature to the hub\r
-  \r
-  Arguments:\r
-    UsbIo           -   EFI_USB_IO_PROTOCOL instance\r
-    Value           -   Feature value that will be set to the hub.\r
-  \r
-  Returns:\r
-    EFI_SUCCESS\r
-    EFI_DEVICE\r
-    EFI_TIME_OUT\r
-  \r
---*/\r
-{\r
-  EFI_USB_DEVICE_REQUEST  DevReq;\r
-  EFI_STATUS              EfiStatus;\r
-  UINT32                  UsbStatus;\r
-  UINT32                  Timeout;\r
-\r
-  ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
-\r
-  //\r
-  // Fill Device request packet\r
-  //\r
-  DevReq.RequestType  = HUB_SET_HUB_FEATURE_REQ_TYPE;\r
-  DevReq.Request      = HUB_SET_HUB_FEATURE;\r
-  DevReq.Value        = Value;\r
-  DevReq.Index        = 0;\r
-  DevReq.Length       = 0;\r
-\r
-  Timeout             = 3000;\r
-  EfiStatus = UsbIo->UsbControlTransfer (\r
-                      UsbIo,\r
-                      &DevReq,\r
-                      EfiUsbNoData,\r
-                      Timeout,\r
-                      NULL,\r
-                      0,\r
-                      &UsbStatus\r
-                      );\r
-\r
-  return EfiStatus;\r
-}\r
-\r
-EFI_STATUS\r
-HubClearHubFeature (\r
-  IN EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  IN UINT8                   Value\r
-  )\r
-/*++\r
-  \r
-  Routine Description:\r
-    Set a specified feature to the hub\r
-  \r
-  Arguments:\r
-    UsbIo           -   EFI_USB_IO_PROTOCOL instance\r
-    Value           -   Feature value that will be cleared from the hub.\r
-  \r
-  Returns:\r
-    EFI_SUCCESS\r
-    EFI_DEVICE\r
-    EFI_TIME_OUT\r
-  \r
---*/\r
-{\r
-  EFI_USB_DEVICE_REQUEST  DevReq;\r
-  EFI_STATUS              EfiStatus;\r
-  UINT32                  UsbStatus;\r
-  UINT32                  Timeout;\r
-\r
-  ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
-\r
-  //\r
-  // Fill Device request packet\r
-  //\r
-  DevReq.RequestType  = HUB_CLEAR_FEATURE_REQ_TYPE;\r
-  DevReq.Request      = HUB_CLEAR_FEATURE;\r
-  DevReq.Value        = Value;\r
-  DevReq.Index        = 0;\r
-  DevReq.Length       = 0;\r
-\r
-  Timeout             = 3000;\r
-  EfiStatus = UsbIo->UsbControlTransfer (\r
-                      UsbIo,\r
-                      &DevReq,\r
-                      EfiUsbNoData,\r
-                      Timeout,\r
-                      NULL,\r
-                      0,\r
-                      &UsbStatus\r
-                      );\r
-\r
-  return EfiStatus;\r
-\r
-}\r
-\r
-EFI_STATUS\r
-GetHubDescriptor (\r
-  IN  EFI_USB_IO_PROTOCOL        *UsbIo,\r
-  IN  UINTN                      DescriptorSize,\r
-  OUT EFI_USB_HUB_DESCRIPTOR     *HubDescriptor\r
-  )\r
-/*++\r
-  \r
-  Routine Description:\r
-    Get the hub descriptor\r
-  \r
-  Arguments:\r
-    UsbIo           -   EFI_USB_IO_PROTOCOL instance\r
-    DescriptorSize  -   The length of Hub Descriptor buffer.\r
-    HubDescriptor   -   Caller allocated buffer to store the hub descriptor\r
-                        if successfully returned.\r
-                              \r
-  Returns:\r
-    EFI_SUCCESS\r
-    EFI_DEVICE\r
-    EFI_TIME_OUT\r
-  \r
---*/\r
-{\r
-  EFI_USB_DEVICE_REQUEST  DevReq;\r
-  EFI_STATUS              EfiStatus;\r
-  UINT32                  UsbStatus;\r
-  UINT32                  Timeout;\r
-\r
-  ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
-\r
-  //\r
-  // Fill Device request packet\r
-  //\r
-  DevReq.RequestType  = USB_RT_HUB | 0x80;\r
-  DevReq.Request      = HUB_GET_DESCRIPTOR;\r
-  DevReq.Value        = USB_DT_HUB << 8;\r
-  DevReq.Index        = 0;\r
-  DevReq.Length       = (UINT16) DescriptorSize;\r
-\r
-  Timeout             = 3000;\r
-  EfiStatus = UsbIo->UsbControlTransfer (\r
-                      UsbIo,\r
-                      &DevReq,\r
-                      EfiUsbDataIn,\r
-                      Timeout,\r
-                      HubDescriptor,\r
-                      (UINT16) DescriptorSize,\r
-                      &UsbStatus\r
-                      );\r
-\r
-  return EfiStatus;\r
-\r
-}\r
-\r
-EFI_STATUS\r
-DoHubConfig (\r
-  IN USB_IO_CONTROLLER_DEVICE     *HubController\r
-  )\r
-/*++\r
-  \r
-  Routine Description:\r
-    Configure the hub\r
-  \r
-  Arguments:\r
-    HubController         -   Indicating the hub controller device that\r
-                              will be configured\r
-                                \r
-  Returns:\r
-    EFI_SUCCESS\r
-    EFI_DEVICE_ERROR\r
-    \r
---*/\r
-{\r
-  EFI_USB_IO_PROTOCOL     *UsbIo;\r
-  EFI_USB_HUB_DESCRIPTOR  HubDescriptor;\r
-  EFI_STATUS              Status;\r
-  EFI_USB_HUB_STATUS      HubStatus;\r
-  UINTN                   Index;\r
-  UINT32                  PortStatus;\r
-\r
-  UsbIo = &HubController->UsbIo;\r
-\r
-  ZeroMem (&HubDescriptor, sizeof (HubDescriptor));\r
-\r
-  //\r
-  // First get the hub descriptor length\r
-  //\r
-  Status = GetHubDescriptor (UsbIo, 2, &HubDescriptor);\r
-  if (EFI_ERROR (Status)) {\r
-    return EFI_DEVICE_ERROR;\r
-  }\r
-    \r
-  //\r
-  // First get the whole descriptor, then\r
-  // get the number of hub ports\r
-  //\r
-  Status = GetHubDescriptor (\r
-            UsbIo,\r
-            HubDescriptor.Length,\r
-            &HubDescriptor\r
-            );\r
-  if (EFI_ERROR (Status)) {\r
-    DEBUG ((gUSBErrorLevel, "Get hub descriptor fail\n"));\r
-    return EFI_DEVICE_ERROR;\r
-  }\r
-\r
-  HubController->DownstreamPorts  = HubDescriptor.NbrPorts;\r
-\r
-  Status                          = HubGetHubStatus (UsbIo, (UINT32 *) &HubStatus);\r
-  if (EFI_ERROR (Status)) {\r
-    DEBUG ((gUSBErrorLevel, "Get hub status fail when configure\n"));\r
-    return EFI_DEVICE_ERROR;\r
-  }\r
-  \r
-  //\r
-  //  Get all hub ports status\r
-  //\r
-  for (Index = 0; Index < HubController->DownstreamPorts; Index++) {\r
-\r
-    Status = HubGetPortStatus (UsbIo, (UINT8) (Index + 1), &PortStatus);\r
-    if (EFI_ERROR (Status)) {\r
-      continue;\r
-    }\r
-  }\r
-  //\r
-  //  Power all the hub ports\r
-  //\r
-  for (Index = 0; Index < HubController->DownstreamPorts; Index++) {\r
-    Status = HubSetPortFeature (\r
-              UsbIo,\r
-              (UINT8) (Index + 1),\r
-              EfiUsbPortPower\r
-              );\r
-    if (EFI_ERROR (Status)) {\r
-      continue;\r
-    }\r
-  }\r
-  \r
-  //\r
-  // Clear Hub Status Change\r
-  //\r
-  Status = HubGetHubStatus (UsbIo, (UINT32 *) &HubStatus);\r
-  if (EFI_ERROR (Status)) {\r
-    DEBUG ((gUSBErrorLevel, "Get hub status fail\n"));\r
-    return EFI_DEVICE_ERROR;\r
-  } else {\r
-    //\r
-    // Hub power supply change happens\r
-    //\r
-    if (HubStatus.HubChange & HUB_CHANGE_LOCAL_POWER) {\r
-      HubClearHubFeature (UsbIo, C_HUB_LOCAL_POWER);\r
-    }\r
-    //\r
-    // Hub change overcurrent happens\r
-    //\r
-    if (HubStatus.HubChange & HUB_CHANGE_OVERCURRENT) {\r
-      HubClearHubFeature (UsbIo, C_HUB_OVER_CURRENT);\r
-    }\r
-  }\r
-\r
-  return EFI_SUCCESS;\r
-\r
-}\r