From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy1-f172.google.com (mail-dy1-f172.google.com [74.125.82.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4B71139446D for ; Thu, 11 Jun 2026 22:39:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781217572; cv=none; b=JPCCPJgYqdIQAZa6K2zOTU67anxg3fqAW0llkdwR7wtCx6OLwsD4Cyb80Osznj1PpB9Cww67ndRaJx4vPUQ1Tvga4g6Kju+RvEWKfTJUVvmqmSolzpKCg7zvbwZg1VAPDXSGAKkKL5Q34m/mgpT6e7x2BZgs0FA3X+OWy/xgPiY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781217572; c=relaxed/simple; bh=+8SUOc1xcRQSb75id7WbryItASP1S+IATD316tnttZU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JuapOveY7+zD2zBQwTPmjq0HJF54u6GRSdEbIylyRd12VqDIR02L1FU5KoXK4GPzSIdV5fwL02IJBvCz2aMS4JRhPiPFIasnHUgY2mOgg7ZQV2XmBC0lnNhpc4hBa9msm/Z7wM2RC/AoBEKX18yMulB0mlx78ysJpVB4vvRRr1E= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=I736Ii8u; arc=none smtp.client-ip=74.125.82.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="I736Ii8u" Received: by mail-dy1-f172.google.com with SMTP id 5a478bee46e88-304f590dd91so514340eec.0 for ; Thu, 11 Jun 2026 15:39:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781217565; x=1781822365; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=x2LEHkho1IVVqEh+6wm7OHzKCMmqVyEcGJJkJ19GMe4=; b=I736Ii8u2rQqT5fXlmQVsegbKj0vrUyHQ2LqdkIzkGo0Nxu7qBKUd/sWQSI+2TzZJo FTFepuSM3ja3HNvrD2i+Wr6ePHUCjPxcXKvTCcKp0zvs0autewgAKwqsNksrQCKOmvNm 2qq9ILnE9OFGP6Q2SmihKvONarcxvX/DBGeUxs9jiL+K36ZKjnPpsCjTSy41Uuo10jnn f9zwezccM55unRW/eTP86sISdPw0puZOmGZMn+6l4hhS1gdzN7fIfemURgQVJfk4cdH/ nKFx8mX7Q/7sohTBh0g5BDIOGX9iU98ojaHUNYKvnZMjia0tAwKODuJ6/wrVXCxZYq99 gj/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781217565; x=1781822365; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=x2LEHkho1IVVqEh+6wm7OHzKCMmqVyEcGJJkJ19GMe4=; b=m33egCndqKrVTa1LyaV3LVTUovi0AqHJ5FfXpkiwNpWeDYzHry8gnQn4E8oiH/Usuh mtU1T3o3iRM2E1FKTVSNd8bjEeTfYVAIZrTv6jOpHh43wJ2Y3F89lzEg584/9B/9ck+C IaNCBBENAe4AdKHbFIoGQozFtFXebDpF4rt+SCS7+LIPfhkZZ0TdWzZj0HBoxgtiuCSG 6ieGLvPeD5DNhLVekWQXJUqQnLwJiWWXYL3HHLOXL3AnvrO2ZEz/Jd/TsrjPpzZuOM1O q2pEUmwvxOMI5VMmt/AEUH4E/7swiz7Nq2rJcax0YOSh8jyT2x+oU9gV3v4xDycVMI/W Ug9g== X-Forwarded-Encrypted: i=1; AFNElJ+/gRGchXtDOP22ecLKaEg1ZkGsgHsVM7OVPuoKiiAVwNXWeRAVZ8x7LcAx81FhdtQn4s3EjoLa12oF+Ek=@vger.kernel.org X-Gm-Message-State: AOJu0YzeWMJzp0JQFhZ0lz5OSGVU4+GlpBfkzdtpn6WZmUD+6Glumj+e j9AT0/kz8mlVJfT7JyjqcG8DeNNz1KBnAWG/twJOhlZGdo9tb11ESPg4 X-Gm-Gg: Acq92OErx4fLFj9Qgef6779wexL2GcKjpNzkPzXiOwg21xrpCoGgkRXH4XEYQagFlVG CwdvlakzO5c2PMIe+pI3jAlKC4D8NZgRF0cRHk3AidHrLQ0uWVKa6TyqavWA72DcbskYPgTxDIX mV8uZUbury8uGMXPHHPAMQ+RhT/H7pZsiBKvALo46zlLLDj/eeB7vtWGO+efwn8Oa1IfvbBzgDn /2pAgpRKbXl5zJoAhLeBRoKFCtYcIr6FaTBpZ5kDUejrwsHR0gTnp7nTLB4hya2Hkx6K2MegzC0 bozjhPAkdNWDwseB8bL1hcLatz1TpDHIvmMHlBglUm/V3Gnb8DUrmT7ypVjcJMId7PnECBlIeTw 8f9vz+NE95ArjOmjbDXjC0/G4RKFWVvvanHqmVrY4BpzjKdr3oj1bA9Dfnst03sABe5u51Wv54Y KcLd4FdpcG9LHIc2TR8ywQuizVChtR/HugmBauDKZGnSWjMzR2jTLPosLLkZL1be+V3fxz/5jgZ hn1 X-Received: by 2002:a05:7300:578f:b0:304:562c:2338 with SMTP id 5a478bee46e88-3081ff75a80mr208849eec.14.1781217565400; Thu, 11 Jun 2026 15:39:25 -0700 (PDT) Received: from lappy (108-228-232-20.lightspeed.sndgca.sbcglobal.net. [108.228.232.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1384b975e55sm241273c88.13.2026.06.11.15.39.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 15:39:25 -0700 (PDT) From: "Derek J. Clark" To: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , Hans de Goede Cc: Armin Wolf , "Derek J . Clark" , "Pierre-Loup A . Griffais" , platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/2] platform/x86: msi-wmi: Add MSI Claw M-Center keys Date: Thu, 11 Jun 2026 22:39:20 +0000 Message-ID: <20260611223920.1679438-3-derekjohn.clark@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260611223920.1679438-1-derekjohn.clark@gmail.com> References: <20260611223920.1679438-1-derekjohn.clark@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit MSI Claw devices produce WMI events through the MSI WMI hotkeys GUID for some of their buttons. When pressed, these cause spam in the kernel. For the majority of devices these events can be safely ignored as they are duplicated by the AT Translated Set 2 Keyboard device exposed as an evdev. For the MSI Claw A8 BZ2EM model's M-Center Menu button (left of the screen) there is no associated keyboard event, so this event must be exposed. Map this button to the same scancode produced by the AT Keyboard device on other models. This does cause double F15 events on the A1M, 7 AI+ A2VM, and 8 AI+ A2VM, but it appears to be harmless in my testing. Signed-off-by: Derek J. Clark --- drivers/platform/x86/msi-wmi.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/platform/x86/msi-wmi.c b/drivers/platform/x86/msi-wmi.c index d00ced756581..73a4f0d2dc04 100644 --- a/drivers/platform/x86/msi-wmi.c +++ b/drivers/platform/x86/msi-wmi.c @@ -46,6 +46,12 @@ enum msi_scancodes { WIND_KEY_WLAN = 0x5f, /* Fn+F11 Wi-Fi toggle */ WIND_KEY_TURBO, /* Fn+F10 turbo mode toggle */ WIND_KEY_ECO = 0x69, /* Fn+F10 ECO mode toggle */ + /* MSI Claw keys */ + CLAW_KEY_VOLUMEDOWN = 0x21, + CLAW_KEY_CENTER = 0x29, /* MSI M-Center main menu */ + CLAW_KEY_QUICK_LONG = 0x2a, /* MSI M-Center quick access long hold */ + CLAW_KEY_VOLUMEUP = 0x32, + CLAW_KEY_QUICK_SHORT = 0x58, /* MSI M-Center quick access short press */ }; static struct key_entry msi_wmi_keymap[] = { { KE_KEY, MSI_KEY_BRIGHTNESSUP, {KEY_BRIGHTNESSUP} }, @@ -69,6 +75,15 @@ static struct key_entry msi_wmi_keymap[] = { { KE_KEY, WIND_KEY_TURBO, {KEY_PROG1} }, { KE_KEY, WIND_KEY_ECO, {KEY_PROG2} }, + /* These are MSI Claw keys, used for MSI M-Center in Windows */ + { KE_KEY, CLAW_KEY_CENTER, {KEY_F15} }, + + /* These MSI Claw keys work without WMI. Ignore them to avoid double keycodes */ + { KE_IGNORE, CLAW_KEY_QUICK_SHORT }, + { KE_IGNORE, CLAW_KEY_QUICK_LONG }, + { KE_IGNORE, CLAW_KEY_VOLUMEUP }, + { KE_IGNORE, CLAW_KEY_VOLUMEDOWN }, + { KE_END, 0 } }; @@ -183,6 +198,13 @@ static void msi_wmi_notify(union acpi_object *obj, void *context) eventcode = obj->integer.value; pr_debug("Eventcode: 0x%x\n", eventcode); break; + case ACPI_TYPE_BUFFER: + if (!obj->buffer.length) + return; + + eventcode = obj->buffer.pointer[0]; + pr_debug("Eventcode: 0x%x\n", eventcode); + break; default: pr_info("Unknown event received\n"); return; -- 2.54.0