]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Isa/Ps2MouseDxe/Ps2Mouse.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdeModulePkg / Bus / Isa / Ps2MouseDxe / Ps2Mouse.c
index fd34e3eaf89ffc84e0008aaf6bab22b7ce73dc42..fb61f75e08433ae39eda8051692fae725aff91fb 100644 (file)
@@ -13,7 +13,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 ///\r
 /// DriverBinding Protocol Instance\r
 ///\r
-EFI_DRIVER_BINDING_PROTOCOL gPS2MouseDriver = {\r
+EFI_DRIVER_BINDING_PROTOCOL  gPS2MouseDriver = {\r
   PS2MouseDriverSupported,\r
   PS2MouseDriverStart,\r
   PS2MouseDriverStop,\r
@@ -39,15 +39,15 @@ EFI_DRIVER_BINDING_PROTOCOL gPS2MouseDriver = {
 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
@@ -55,7 +55,7 @@ PS2MouseDriverSupported (
   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
@@ -65,37 +65,38 @@ PS2MouseDriverSupported (
   }\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
@@ -104,7 +105,7 @@ PS2MouseDriverSupported (
   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
@@ -143,21 +144,21 @@ PS2MouseDriverSupported (
 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
@@ -165,7 +166,7 @@ PS2MouseDriverStart (
   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
@@ -173,6 +174,7 @@ PS2MouseDriverStart (
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
+\r
   //\r
   // Report that the keyboard is being enabled\r
   //\r
@@ -188,7 +190,7 @@ PS2MouseDriverStart (
   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
@@ -196,6 +198,7 @@ PS2MouseDriverStart (
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
+\r
   //\r
   // Raise TPL to avoid keyboard operation impact\r
   //\r
@@ -209,6 +212,7 @@ PS2MouseDriverStart (
     Status = EFI_OUT_OF_RESOURCES;\r
     goto ErrorExit;\r
   }\r
+\r
   //\r
   // Setup the device instance\r
   //\r
@@ -223,14 +227,14 @@ PS2MouseDriverStart (
   //\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
@@ -275,15 +279,15 @@ PS2MouseDriverStart (
   // 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
@@ -307,6 +311,7 @@ PS2MouseDriverStart (
     Status = EFI_OUT_OF_RESOURCES;\r
     goto ErrorExit;\r
   }\r
+\r
   //\r
   // Setup a periodic timer, used to poll mouse state\r
   //\r
@@ -321,6 +326,7 @@ PS2MouseDriverStart (
     Status = EFI_OUT_OF_RESOURCES;\r
     goto ErrorExit;\r
   }\r
+\r
   //\r
   // Start timer to poll mouse (100 samples per second)\r
   //\r
@@ -346,7 +352,6 @@ PS2MouseDriverStart (
     FALSE\r
     );\r
 \r
-\r
   //\r
   // Install protocol interfaces for the mouse device.\r
   //\r
@@ -441,21 +446,21 @@ ErrorExit:
 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
@@ -535,15 +540,15 @@ PS2MouseDriverStop (
 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
@@ -587,8 +592,8 @@ MouseReset (
 \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
@@ -625,6 +630,7 @@ MouseReset (
       goto Exit;\r
     }\r
   }\r
+\r
 Exit:\r
   gBS->RestoreTPL (OldTpl);\r
 \r
@@ -646,11 +652,11 @@ Exit:
 **/\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
@@ -673,12 +679,12 @@ CheckMouseConnect (
 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
@@ -717,13 +723,13 @@ MouseGetState (
 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
@@ -732,7 +738,6 @@ MouseWaitForInput (
   if (MouseDev->StateChanged) {\r
     gBS->SignalEvent (Event);\r
   }\r
-\r
 }\r
 \r
 /**\r
@@ -751,9 +756,9 @@ PollMouse (
   )\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
@@ -773,12 +778,12 @@ PollMouse (
 **/\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
@@ -793,7 +798,5 @@ InitializePs2Mouse(
              );\r
   ASSERT_EFI_ERROR (Status);\r
 \r
-\r
   return Status;\r
 }\r
-\r