-/**@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
}\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
//\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
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
//\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
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
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
}\r
\r
if (MouseDev != NULL) {\r
- gBS->FreePool (MouseDev);\r
+ FreePool (MouseDev);\r
}\r
\r
gBS->CloseProtocol (\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
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
\r
gBS->CloseEvent (MouseDev->SimplePointerProtocol.WaitForInput);\r
FreeUnicodeStringTable (MouseDev->ControllerNameTable);\r
- gBS->FreePool (MouseDev);\r
+ FreePool (MouseDev);\r
\r
gBS->CloseProtocol (\r
Controller,\r
}\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
/**\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
\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
\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
}\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
/**\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