From: Nikita Krapivin <33228822+nkrapivin@users.noreply.github.com> Date: Wed, 21 Mar 2018 21:07:30 +0000 (+0500) Subject: [I8042PRT] Enable keyboard clock explicitly (fixes Lenovo ACPI bug). CORE-14256 ... X-Git-Tag: 0.4.9-RC~458 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=10645167b8cf68a21e1944444c6278d9c92835c4 [I8042PRT] Enable keyboard clock explicitly (fixes Lenovo ACPI bug). CORE-14256 (#434) --- diff --git a/drivers/input/i8042prt/i8042prt.h b/drivers/input/i8042prt/i8042prt.h index acae330eccd..71be9823265 100644 --- a/drivers/input/i8042prt/i8042prt.h +++ b/drivers/input/i8042prt/i8042prt.h @@ -223,6 +223,8 @@ typedef struct _I8042_HOOK_WORKITEM #define MOUSE_ENAB 0xA8 #define MOUSE_LINE_TEST 0xA9 #define CTRL_SELF_TEST 0xAA +#define KBD_CLK_DISABLE 0xAD +#define KBD_CLK_ENABLE 0xAE #define CTRL_WRITE_MOUSE 0xD4 /*----------------------------------------------------- diff --git a/drivers/input/i8042prt/pnp.c b/drivers/input/i8042prt/pnp.c index b95dc9a98aa..e5fe57b2080 100644 --- a/drivers/input/i8042prt/pnp.c +++ b/drivers/input/i8042prt/pnp.c @@ -274,6 +274,10 @@ i8042ConnectKeyboardInterrupt( TRACE_(I8042PRT, "i8042ConnectKeyboardInterrupt()\n"); PortDeviceExtension = DeviceExtension->Common.PortDeviceExtension; + + // Enable keyboard clock line + i8042Write(PortDeviceExtension, PortDeviceExtension->ControlPort, KBD_CLK_ENABLE); + DirqlMax = MAX( PortDeviceExtension->KeyboardInterrupt.Dirql, PortDeviceExtension->MouseInterrupt.Dirql);