Browse Source

Ps2KbdCtrller: Make wait for SUCCESS after BAT non-fatal

Recent model Chromebooks only return ACK, but not
BAT_SUCCESS, which causes hanging and failed ps2k init.
To mitigate this, make the absence of BAT_SUCCESS reply
non-fatal, and reduce the no-reply timeout from 4s to 1s.

Tested on google/dracia and purism/librem_14

Acked-by: Hao A Wu <hao.a.wu@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Matt DeVillier 3 years ago
parent
commit
db2c22633f
1 changed files with 1 additions and 7 deletions
  1. 1 7
      MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KbdCtrller.c

+ 1 - 7
MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KbdCtrller.c

@@ -1731,13 +1731,7 @@ InitKeyboard (
     //
     // wait for BAT completion code
     //
-    mWaitForValueTimeOut = KEYBOARD_BAT_TIMEOUT;
-
-    Status = KeyboardWaitForValue (ConsoleIn, KEYBOARD_8048_RETURN_8042_BAT_SUCCESS);
-    if (EFI_ERROR (Status)) {
-      KeyboardError (ConsoleIn, L"Keyboard self test failed!\n\r");
-      goto Done;
-    }
+    KeyboardWaitForValue (ConsoleIn, KEYBOARD_8048_RETURN_8042_BAT_SUCCESS);
 
     mWaitForValueTimeOut = KEYBOARD_WAITFORVALUE_TIMEOUT;