//\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
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
UINT8 PortNum\r
);\r
\r
+STATIC\r
EFI_STATUS\r
ResetRootPort (\r
IN USB_BUS_CONTROLLER_DEVICE *UsbBusDev,\r
IN UINT8 RetryTimes\r
);\r
\r
+STATIC\r
EFI_STATUS\r
ResetHubPort (\r
IN USB_IO_CONTROLLER_DEVICE *UsbIoController,\r
//\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
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
//\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
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
// 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
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
return ParentPortReset (UsbIoController, TRUE, 0);\r
}\r
\r
+STATIC\r
EFI_STATUS\r
ResetRootPort (\r
IN USB_BUS_CONTROLLER_DEVICE *UsbBusDev,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
ResetHubPort (\r
IN USB_IO_CONTROLLER_DEVICE *UsbIoController,\r
--*/\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
);\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
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
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
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