]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Bus/Isa/Ps2MouseDxe/Ps2Mouse.c
ShellPkg: acpiview: Make '-h' option not require a parameter
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Isa / Ps2MouseDxe / Ps2Mouse.c
index 084c3244aebae38329055742c717f6d7f5ad4e60..f8cfc4396635ef8fa75ba90e16f2d2ae19264043 100644 (file)
@@ -1,24 +1,18 @@
-/**@file\r
+/** @file\r
   PS/2 Mouse driver. Routines that interacts with callers,\r
-  conforming to EFI driver model\r
-  \r
-Copyright (c) 2006 - 2007, 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
+  conforming to EFI driver model.\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
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
 #include "Ps2Mouse.h"\r
 #include "CommPs2.h"\r
 \r
-//\r
-// DriverBinding Protocol Instance\r
-//\r
+///\r
+/// DriverBinding Protocol Instance\r
+///\r
 EFI_DRIVER_BINDING_PROTOCOL gPS2MouseDriver = {\r
   PS2MouseDriverSupported,\r
   PS2MouseDriverStart,\r
@@ -109,9 +103,9 @@ PS2MouseDriverSupported (
 }\r
 \r
 /**\r
-  Start this driver on ControllerHandle by opening a IsaIo\r
-  protocol, creating PS2_MOUSE_ABSOLUTE_POINTER_DEV device and install gEfiAbsolutePointerProtocolGuid\r
-  finnally.\r
+  Start this driver on ControllerHandle by opening a IsaIo protocol, creating\r
+  PS2_MOUSE_ABSOLUTE_POINTER_DEV device and install gEfiAbsolutePointerProtocolGuid\r
+  finally.\r
 \r
   @param  This                 Protocol instance pointer.\r
   @param  ControllerHandle     Handle of device to bind driver to\r
@@ -205,9 +199,9 @@ PS2MouseDriverStart (
   //\r
   MouseDev->Signature       = PS2_MOUSE_DEV_SIGNATURE;\r
   MouseDev->Handle          = Controller;\r
-  MouseDev->SampleRate      = SSR_20;\r
-  MouseDev->Resolution      = CMR4;\r
-  MouseDev->Scaling         = SF1;\r
+  MouseDev->SampleRate      = SampleRate20;\r
+  MouseDev->Resolution      = MouseResolution4;\r
+  MouseDev->Scaling         = Scaling1;\r
   MouseDev->DataPackageSize = 3;\r
   MouseDev->IsaIo           = IsaIo;\r
   MouseDev->DevicePath      = ParentDevicePath;\r
@@ -239,7 +233,14 @@ PS2MouseDriverStart (
     Status     = EFI_DEVICE_ERROR;\r
     StatusCode = EFI_PERIPHERAL_MOUSE | EFI_P_EC_NOT_DETECTED;\r
     goto ErrorExit;\r
-  } \r
+  }\r
+\r
+  REPORT_STATUS_CODE_WITH_DEVICE_PATH (\r
+    EFI_PROGRESS_CODE,\r
+    EFI_PERIPHERAL_MOUSE | EFI_P_MOUSE_PC_SELF_TEST,\r
+    ParentDevicePath\r
+    );\r
+\r
   if ((Data & KBC_SYSF) != KBC_SYSF) {\r
     Status = KbcSelfTest (IsaIo);\r
     if (EFI_ERROR (Status)) {\r
@@ -259,7 +260,10 @@ PS2MouseDriverStart (
   //\r
   // Reset the mouse\r
   //\r
-  Status = MouseDev->SimplePointerProtocol.Reset (&MouseDev->SimplePointerProtocol, TRUE);\r
+  Status = MouseDev->SimplePointerProtocol.Reset (\r
+                     &MouseDev->SimplePointerProtocol,\r
+                     FeaturePcdGet (PcdPs2MouseExtendedVerification)\r
+                     );\r
   if (EFI_ERROR (Status)) {\r
     //\r
     // mouse not connected\r
@@ -268,6 +272,13 @@ PS2MouseDriverStart (
     StatusCode  = EFI_PERIPHERAL_MOUSE | EFI_P_EC_NOT_DETECTED;\r
     goto ErrorExit;\r
   }\r
+\r
+  REPORT_STATUS_CODE_WITH_DEVICE_PATH (\r
+    EFI_PROGRESS_CODE,\r
+    EFI_PERIPHERAL_MOUSE | EFI_P_PC_DETECTED,\r
+    ParentDevicePath\r
+    );\r
+\r
   //\r
   // Setup the WaitForKey event\r
   //\r
@@ -364,7 +375,7 @@ ErrorExit:
   if ((MouseDev != NULL) && (MouseDev->ControllerNameTable != NULL)) {\r
     FreeUnicodeStringTable (MouseDev->ControllerNameTable);\r
   }\r
-  \r
+\r
   if (Status != EFI_DEVICE_ERROR) {\r
     //\r
     // Since there will be no timer handler for mouse input any more,\r
@@ -377,7 +388,7 @@ ErrorExit:
   }\r
 \r
   if (MouseDev != NULL) {\r
-    gBS->FreePool (MouseDev);\r
+    FreePool (MouseDev);\r
   }\r
 \r
   gBS->CloseProtocol (\r
@@ -400,7 +411,7 @@ ErrorExit:
 }\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
@@ -458,10 +469,6 @@ PS2MouseDriverStop (
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
-  //\r
-  // Disable mouse on keyboard controller\r
-  //\r
-  KbcDisableAux (MouseDev->IsaIo);\r
 \r
   //\r
   // Cancel mouse data polling timer, close timer event\r
@@ -480,7 +487,7 @@ PS2MouseDriverStop (
 \r
   gBS->CloseEvent (MouseDev->SimplePointerProtocol.WaitForInput);\r
   FreeUnicodeStringTable (MouseDev->ControllerNameTable);\r
-  gBS->FreePool (MouseDev);\r
+  FreePool (MouseDev);\r
 \r
   gBS->CloseProtocol (\r
          Controller,\r
@@ -500,14 +507,14 @@ PS2MouseDriverStop (
 }\r
 \r
 /**\r
-  Reset the Mouse and do BAT test for it, if ExtendedVerification isTRUE and there is a mouse device connectted to system\r
+  Reset the Mouse and do BAT test for it, if ExtendedVerification is TRUE and 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
@@ -618,10 +625,10 @@ Exit:
 /**\r
   Check whether there is Ps/2 mouse device in system\r
 \r
-  @param PS2_MOUSE_DEV - Mouse Private Data Structure\r
+  @param MouseDev   - Mouse Private Data Structure\r
 \r
-  @retval TRUE                - Keyboard in System.\r
-  @retval FALSE               - Keyboard not in System.\r
+  @retval TRUE      - Keyboard in System.\r
+  @retval FALSE     - Keyboard not in System.\r
 \r
 **/\r
 BOOLEAN\r
@@ -642,7 +649,7 @@ CheckMouseConnect (
 \r
 /**\r
   Get and Clear mouse status.\r
-  \r
+\r
   @param This                 - Pointer of simple pointer Protocol.\r
   @param State                - Output buffer holding status.\r
 \r
@@ -687,22 +694,19 @@ MouseGetState (
 \r
 /**\r
 \r
-  Event notification function for SIMPLE_POINTER.WaitForInput event\r
-  Signal the event if there is input from mouse\r
+  Event notification function for SIMPLE_POINTER.WaitForInput event.\r
+  Signal the event if there is input from mouse.\r
 \r
   @param Event    event object\r
   @param Context  event context\r
 \r
 **/\r
-\r
 VOID\r
 EFIAPI\r
 MouseWaitForInput (\r
   IN  EFI_EVENT               Event,\r
   IN  VOID                    *Context\r
   )\r
-// GC_TODO:    Event - add argument and description to function comment\r
-// GC_TODO:    Context - add argument and description to function comment\r
 {\r
   PS2_MOUSE_DEV *MouseDev;\r
 \r
@@ -719,8 +723,8 @@ MouseWaitForInput (
 }\r
 \r
 /**\r
-  Event notification function for TimerEvent event\r
-  If mouse device is connected to system, try to get the mouse packet data\r
+  Event notification function for TimerEvent event.\r
+  If mouse device is connected to system, try to get the mouse packet data.\r
 \r
   @param Event      -  TimerEvent in PS2_MOUSE_DEV\r
   @param Context    -  Pointer to PS2_MOUSE_DEV structure\r
@@ -747,9 +751,9 @@ PollMouse (
 /**\r
   The user Entry Point for module Ps2Mouse. The user code starts with this function.\r
 \r
-  @param[in] ImageHandle    The firmware allocated handle for the EFI image.  \r
+  @param[in] ImageHandle    The firmware allocated handle for the EFI image.\r
   @param[in] SystemTable    A pointer to the EFI System Table.\r
-  \r
+\r
   @retval EFI_SUCCESS       The entry point is executed successfully.\r
   @retval other             Some error occurs when executing this entry point.\r
 \r