conforming to EFI driver model.\r
\r
Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
-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
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
///\r
/// DriverBinding Protocol Instance\r
///\r
-EFI_DRIVER_BINDING_PROTOCOL gPS2MouseDriver = {\r
+EFI_DRIVER_BINDING_PROTOCOL gPS2MouseDriver = {\r
PS2MouseDriverSupported,\r
PS2MouseDriverStart,\r
PS2MouseDriverStop,\r
EFI_STATUS\r
EFIAPI\r
PS2MouseDriverSupported (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_SIO_PROTOCOL *Sio;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- ACPI_HID_DEVICE_PATH *Acpi;\r
+ EFI_STATUS Status;\r
+ EFI_SIO_PROTOCOL *Sio;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ ACPI_HID_DEVICE_PATH *Acpi;\r
\r
//\r
// Check whether the controller is keyboard.\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiDevicePathProtocolGuid,\r
- (VOID **) &DevicePath,\r
+ (VOID **)&DevicePath,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
}\r
\r
do {\r
- Acpi = (ACPI_HID_DEVICE_PATH *) DevicePath;\r
+ Acpi = (ACPI_HID_DEVICE_PATH *)DevicePath;\r
DevicePath = NextDevicePathNode (DevicePath);\r
} while (!IsDevicePathEnd (DevicePath));\r
\r
- if (DevicePathType (Acpi) != ACPI_DEVICE_PATH ||\r
- (DevicePathSubType (Acpi) != ACPI_DP && DevicePathSubType (Acpi) != ACPI_EXTENDED_DP)) {\r
+ if ((DevicePathType (Acpi) != ACPI_DEVICE_PATH) ||\r
+ ((DevicePathSubType (Acpi) != ACPI_DP) && (DevicePathSubType (Acpi) != ACPI_EXTENDED_DP)))\r
+ {\r
return EFI_UNSUPPORTED;\r
}\r
\r
switch (Acpi->HID) {\r
- case EISA_PNP_ID (0xF03):\r
+ case EISA_PNP_ID (0xF03):\r
//\r
// Microsoft PS/2 style mouse\r
//\r
- case EISA_PNP_ID (0xF13):\r
- //\r
- // PS/2 Port for PS/2-style Mice\r
- //\r
- break;\r
-\r
- case EISA_PNP_ID (0x303):\r
- //\r
- // IBM Enhanced (101/102-key, PS/2 mouse support)\r
- //\r
- if (Acpi->UID == 1) {\r
+ case EISA_PNP_ID (0xF13):\r
+ //\r
+ // PS/2 Port for PS/2-style Mice\r
+ //\r
break;\r
- }\r
\r
- default:\r
- return EFI_UNSUPPORTED;\r
- break;\r
+ case EISA_PNP_ID (0x303):\r
+ //\r
+ // IBM Enhanced (101/102-key, PS/2 mouse support)\r
+ //\r
+ if (Acpi->UID == 1) {\r
+ break;\r
+ }\r
+\r
+ default:\r
+ return EFI_UNSUPPORTED;\r
+ break;\r
}\r
\r
//\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiSioProtocolGuid,\r
- (VOID **) &Sio,\r
+ (VOID **)&Sio,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
EFI_STATUS\r
EFIAPI\r
PS2MouseDriverStart (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_STATUS EmptyStatus;\r
- EFI_SIO_PROTOCOL *Sio;\r
- PS2_MOUSE_DEV *MouseDev;\r
- UINT8 Data;\r
- EFI_TPL OldTpl;\r
- EFI_STATUS_CODE_VALUE StatusCode;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ EFI_STATUS Status;\r
+ EFI_STATUS EmptyStatus;\r
+ EFI_SIO_PROTOCOL *Sio;\r
+ PS2_MOUSE_DEV *MouseDev;\r
+ UINT8 Data;\r
+ EFI_TPL OldTpl;\r
+ EFI_STATUS_CODE_VALUE StatusCode;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
\r
- StatusCode = 0;\r
+ StatusCode = 0;\r
\r
//\r
// Open the device path protocol\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiDevicePathProtocolGuid,\r
- (VOID **) &DevicePath,\r
+ (VOID **)&DevicePath,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
//\r
// Report that the keyboard is being enabled\r
//\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiSioProtocolGuid,\r
- (VOID **) &Sio,\r
+ (VOID **)&Sio,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
//\r
// Raise TPL to avoid keyboard operation impact\r
//\r
Status = EFI_OUT_OF_RESOURCES;\r
goto ErrorExit;\r
}\r
+\r
//\r
// Setup the device instance\r
//\r
//\r
// Resolution = 4 counts/mm\r
//\r
- MouseDev->Mode.ResolutionX = 4;\r
- MouseDev->Mode.ResolutionY = 4;\r
- MouseDev->Mode.LeftButton = TRUE;\r
- MouseDev->Mode.RightButton = TRUE;\r
+ MouseDev->Mode.ResolutionX = 4;\r
+ MouseDev->Mode.ResolutionY = 4;\r
+ MouseDev->Mode.LeftButton = TRUE;\r
+ MouseDev->Mode.RightButton = TRUE;\r
\r
- MouseDev->SimplePointerProtocol.Reset = MouseReset;\r
- MouseDev->SimplePointerProtocol.GetState = MouseGetState;\r
- MouseDev->SimplePointerProtocol.Mode = &(MouseDev->Mode);\r
+ MouseDev->SimplePointerProtocol.Reset = MouseReset;\r
+ MouseDev->SimplePointerProtocol.GetState = MouseGetState;\r
+ MouseDev->SimplePointerProtocol.Mode = &(MouseDev->Mode);\r
\r
//\r
// Initialize keyboard controller if necessary\r
// Reset the mouse\r
//\r
Status = MouseDev->SimplePointerProtocol.Reset (\r
- &MouseDev->SimplePointerProtocol,\r
- FeaturePcdGet (PcdPs2MouseExtendedVerification)\r
- );\r
+ &MouseDev->SimplePointerProtocol,\r
+ FeaturePcdGet (PcdPs2MouseExtendedVerification)\r
+ );\r
if (EFI_ERROR (Status)) {\r
//\r
// mouse not connected\r
//\r
- Status = EFI_SUCCESS;\r
- StatusCode = EFI_PERIPHERAL_MOUSE | EFI_P_EC_NOT_DETECTED;\r
+ Status = EFI_SUCCESS;\r
+ StatusCode = EFI_PERIPHERAL_MOUSE | EFI_P_EC_NOT_DETECTED;\r
goto ErrorExit;\r
}\r
\r
Status = EFI_OUT_OF_RESOURCES;\r
goto ErrorExit;\r
}\r
+\r
//\r
// Setup a periodic timer, used to poll mouse state\r
//\r
Status = EFI_OUT_OF_RESOURCES;\r
goto ErrorExit;\r
}\r
+\r
//\r
// Start timer to poll mouse (100 samples per second)\r
//\r
FALSE\r
);\r
\r
-\r
//\r
// Install protocol interfaces for the mouse device.\r
//\r
}\r
\r
/**\r
- Stop this driver on ControllerHandle. Support stoping any child handles\r
+ Stop this driver on ControllerHandle. Support stopping any child handles\r
created by this driver.\r
\r
@param This Protocol instance pointer.\r
EFI_STATUS\r
EFIAPI\r
PS2MouseDriverStop (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\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_STATUS Status;\r
- EFI_SIMPLE_POINTER_PROTOCOL *SimplePointerProtocol;\r
- PS2_MOUSE_DEV *MouseDev;\r
- UINT8 Data;\r
+ EFI_STATUS Status;\r
+ EFI_SIMPLE_POINTER_PROTOCOL *SimplePointerProtocol;\r
+ PS2_MOUSE_DEV *MouseDev;\r
+ UINT8 Data;\r
\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiSimplePointerProtocolGuid,\r
- (VOID **) &SimplePointerProtocol,\r
+ (VOID **)&SimplePointerProtocol,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
\r
/**\r
Reset the Mouse and do BAT test for it, if ExtendedVerification is TRUE and\r
- there is a mouse device connectted to system.\r
+ there is a mouse device connected to system.\r
\r
@param This - Pointer of simple pointer Protocol.\r
@param ExtendedVerification - Whether configure mouse parameters. True: do; FALSE: skip.\r
\r
\r
@retval EFI_SUCCESS - The command byte is written successfully.\r
- @retval EFI_DEVICE_ERROR - Errors occurred during reseting keyboard.\r
+ @retval EFI_DEVICE_ERROR - Errors occurred during resetting keyboard.\r
\r
**/\r
EFI_STATUS\r
EFIAPI\r
MouseReset (\r
- IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
- IN BOOLEAN ExtendedVerification\r
+ IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
+ IN BOOLEAN ExtendedVerification\r
)\r
{\r
- EFI_STATUS Status;\r
- PS2_MOUSE_DEV *MouseDev;\r
- EFI_TPL OldTpl;\r
- BOOLEAN KeyboardEnable;\r
- UINT8 Data;\r
+ EFI_STATUS Status;\r
+ PS2_MOUSE_DEV *MouseDev;\r
+ EFI_TPL OldTpl;\r
+ BOOLEAN KeyboardEnable;\r
+ UINT8 Data;\r
\r
MouseDev = PS2_MOUSE_DEV_FROM_THIS (This);\r
\r
\r
Status = EFI_SUCCESS;\r
//\r
- // The PS2 mouse driver reset behavior is always successfully return no matter wheater or not there is mouse connected to system.\r
- // This behavior is needed by performance speed. The following mouse command only succeessfully finish when mouse device is\r
+ // The PS2 mouse driver reset behavior is always successfully return no matter whether or not there is mouse connected to system.\r
+ // This behavior is needed by performance speed. The following mouse command only successfully finish when mouse device is\r
// connected to system, so if PS2 mouse device not connect to system or user not ask for, we skip the mouse configuration and enabling\r
//\r
if (ExtendedVerification && CheckMouseConnect (MouseDev)) {\r
goto Exit;\r
}\r
}\r
+\r
Exit:\r
gBS->RestoreTPL (OldTpl);\r
\r
**/\r
BOOLEAN\r
CheckMouseConnect (\r
- IN PS2_MOUSE_DEV *MouseDev\r
+ IN PS2_MOUSE_DEV *MouseDev\r
)\r
\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
Status = PS2MouseEnable ();\r
if (!EFI_ERROR (Status)) {\r
EFI_STATUS\r
EFIAPI\r
MouseGetState (\r
- IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
- IN OUT EFI_SIMPLE_POINTER_STATE *State\r
+ IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
+ IN OUT EFI_SIMPLE_POINTER_STATE *State\r
)\r
{\r
- PS2_MOUSE_DEV *MouseDev;\r
- EFI_TPL OldTpl;\r
+ PS2_MOUSE_DEV *MouseDev;\r
+ EFI_TPL OldTpl;\r
\r
MouseDev = PS2_MOUSE_DEV_FROM_THIS (This);\r
\r
VOID\r
EFIAPI\r
MouseWaitForInput (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
- PS2_MOUSE_DEV *MouseDev;\r
+ PS2_MOUSE_DEV *MouseDev;\r
\r
- MouseDev = (PS2_MOUSE_DEV *) Context;\r
+ MouseDev = (PS2_MOUSE_DEV *)Context;\r
\r
//\r
// Someone is waiting on the mouse event, if there's\r
if (MouseDev->StateChanged) {\r
gBS->SignalEvent (Event);\r
}\r
-\r
}\r
\r
/**\r
)\r
\r
{\r
- PS2_MOUSE_DEV *MouseDev;\r
+ PS2_MOUSE_DEV *MouseDev;\r
\r
- MouseDev = (PS2_MOUSE_DEV *) Context;\r
+ MouseDev = (PS2_MOUSE_DEV *)Context;\r
\r
//\r
// Polling mouse packet data\r
**/\r
EFI_STATUS\r
EFIAPI\r
-InitializePs2Mouse(\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
+InitializePs2Mouse (\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
//\r
// Install driver model protocol(s).\r
);\r
ASSERT_EFI_ERROR (Status);\r
\r
-\r
return Status;\r
}\r
-\r