[PATCH 2/2] Input: i8042 - Disable keyboard wakeup from s2idle on MSI Claw devices

Matthew Schwartz posted 2 patches 3 months, 3 weeks ago
[PATCH 2/2] Input: i8042 - Disable keyboard wakeup from s2idle on MSI Claw devices
Posted by Matthew Schwartz 3 months, 3 weeks ago
On MSI Claw handheld gaming PCs, the volume buttons are considered a part
of an i8042 keyboard device and can wake the system from s2idle. This is
not expected behavior on a handheld gaming device, as the volume buttons
can easily be pressed while handling the device in its s2idle state.

To avoid this behavior, enable the SERIO_QUIRK_NOKBDWAKEUP quirk for all 
current MSI Claw models to disallow wakeup via the i8042 keyboard device
while maintaining volume button functionality.

Signed-off-by: Matthew Schwartz <matthew.schwartz@linux.dev>
---
 drivers/input/serio/i8042-acpipnpio.h | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/drivers/input/serio/i8042-acpipnpio.h b/drivers/input/serio/i8042-acpipnpio.h
index 6dbe9d8523f49..c1874a309c69b 100644
--- a/drivers/input/serio/i8042-acpipnpio.h
+++ b/drivers/input/serio/i8042-acpipnpio.h
@@ -897,6 +897,30 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
 		},
 		.driver_data = (void *)(SERIO_QUIRK_RESET_ALWAYS)
 	},
+	{
+		/* MSI Claw A1M */
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "Micro-Star International Co., Ltd."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Claw A1M"),
+		},
+		.driver_data = (void *)(SERIO_QUIRK_NOKBDWAKEUP)
+	},
+	{
+		/* MSI Claw 7 AI+ A2VM */
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "Micro-Star International Co., Ltd."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Claw 7 AI+ A2VM"),
+		},
+		.driver_data = (void *)(SERIO_QUIRK_NOKBDWAKEUP)
+	},
+	{
+		/* MSI Claw 8 AI+ A2VM */
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "Micro-Star International Co., Ltd."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Claw 8 AI+ A2VM"),
+		},
+		.driver_data = (void *)(SERIO_QUIRK_NOKBDWAKEUP)
+	},
 	{
 		/* MSI Wind U-100 */
 		.matches = {
-- 
2.49.0