[I8042PRT] Enable keyboard clock explicitly (fixes Lenovo ACPI bug). CORE-14256 (#434)

This commit is contained in:
Nikita Krapivin 2018-03-22 02:07:30 +05:00 committed by Hermès BÉLUSCA - MAÏTO
parent 9febc82acf
commit 10645167b8
2 changed files with 6 additions and 0 deletions

View file

@ -223,6 +223,8 @@ typedef struct _I8042_HOOK_WORKITEM
#define MOUSE_ENAB 0xA8 #define MOUSE_ENAB 0xA8
#define MOUSE_LINE_TEST 0xA9 #define MOUSE_LINE_TEST 0xA9
#define CTRL_SELF_TEST 0xAA #define CTRL_SELF_TEST 0xAA
#define KBD_CLK_DISABLE 0xAD
#define KBD_CLK_ENABLE 0xAE
#define CTRL_WRITE_MOUSE 0xD4 #define CTRL_WRITE_MOUSE 0xD4
/*----------------------------------------------------- /*-----------------------------------------------------

View file

@ -274,6 +274,10 @@ i8042ConnectKeyboardInterrupt(
TRACE_(I8042PRT, "i8042ConnectKeyboardInterrupt()\n"); TRACE_(I8042PRT, "i8042ConnectKeyboardInterrupt()\n");
PortDeviceExtension = DeviceExtension->Common.PortDeviceExtension; PortDeviceExtension = DeviceExtension->Common.PortDeviceExtension;
// Enable keyboard clock line
i8042Write(PortDeviceExtension, PortDeviceExtension->ControlPort, KBD_CLK_ENABLE);
DirqlMax = MAX( DirqlMax = MAX(
PortDeviceExtension->KeyboardInterrupt.Dirql, PortDeviceExtension->KeyboardInterrupt.Dirql,
PortDeviceExtension->MouseInterrupt.Dirql); PortDeviceExtension->MouseInterrupt.Dirql);