All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ionut Nechita (Sunlight Linux)" <sunlightlinux@gmail.com>
To: jikos@kernel.org, bentiss@kernel.org
Cc: superm1@kernel.org, benato.denis96@gmail.com,
	linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
	ionut_n2001@yahoo.com, sunlightlinux@gmail.com
Subject: [PATCH 4/4] HID: asus: Implement Fn+F5 fan control key handler
Date: Wed,  7 Jan 2026 13:19:50 +0200	[thread overview]
Message-ID: <20260107111945.48018-10-sunlightlinux@gmail.com> (raw)
In-Reply-To: <20260107111945.48018-2-sunlightlinux@gmail.com>

From: Ionut Nechita <ionut_n2001@yahoo.com>

On Asus ROG laptops, the Fn+F5 key (HID code 0xae) is used to cycle
through fan modes. This key press needs to be forwarded to the asus-wmi
driver to actually change the fan mode.

Add ASUS_FAN_CTRL_KEY_CODE define and implement the handler in
asus_raw_event() to send WMI events when this key is pressed.

Tested on Asus ROG G14/G15 series laptops.

Change-Id: Ic03df877b71e34c421e992a06e5e706d954e7dbf
Signed-off-by: Ionut Nechita <ionut_n2001@yahoo.com>
---
 drivers/hid/hid-asus.c | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
index 05fa35489258d..d93c8f030b239 100644
--- a/drivers/hid/hid-asus.c
+++ b/drivers/hid/hid-asus.c
@@ -65,6 +65,9 @@ MODULE_DESCRIPTION("Asus HID Keyboard and TouchPad");
 #define ASUS_SPURIOUS_CODE_0X8A 0x8a
 #define ASUS_SPURIOUS_CODE_0X9E 0x9e
 
+/* Special key codes */
+#define ASUS_FAN_CTRL_KEY_CODE 0xae
+
 #define SUPPORT_KBD_BACKLIGHT BIT(0)
 
 #define MAX_TOUCH_MAJOR 8
@@ -379,12 +382,21 @@ static int asus_raw_event(struct hid_device *hdev,
 	if (report->id == FEATURE_KBD_LED_REPORT_ID1 || report->id == FEATURE_KBD_LED_REPORT_ID2)
 		return -1;
 	if (drvdata->quirks & QUIRK_ROG_NKEY_KEYBOARD) {
-		/*
-		 * G14 and G15 send these codes on some keypresses with no
-		 * discernable reason for doing so. Filter them out to avoid
-		 * unmapped warning messages.
-		 */
 		if (report->id == FEATURE_KBD_REPORT_ID) {
+			/* Fn+F5 fan control key, send WMI event to toggle fan mode */
+			if (data[1] == ASUS_FAN_CTRL_KEY_CODE) {
+				int ret = asus_wmi_send_event(drvdata, ASUS_FAN_CTRL_KEY_CODE);
+
+				if (ret < 0)
+					hid_warn(hdev, "Failed to trigger fan control event\n");
+				return -1;
+			}
+
+			/*
+			 * G14 and G15 send these codes on some keypresses with no
+			 * discernable reason for doing so. Filter them out to avoid
+			 * unmapped warning messages.
+			 */
 			if (data[1] == ASUS_SPURIOUS_CODE_0XEA ||
 			    data[1] == ASUS_SPURIOUS_CODE_0XEC ||
 			    data[1] == ASUS_SPURIOUS_CODE_0X02 ||
-- 
2.52.0


  parent reply	other threads:[~2026-01-07 11:20 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-06 14:04 [PATCH 0/1] HID: asus: Add ROG laptop HID code filtering and fan control Ionut Nechita (Sunlight Linux)
2026-01-06 14:04 ` [PATCH] HID: asus: Filter HID vendor codes and add WMI fan control support for ROG laptops Ionut Nechita (Sunlight Linux)
2026-01-06 16:18   ` Mario Limonciello (AMD) (kernel.org)
2026-01-07 11:19     ` [PATCH v2 0/4] HID: asus: Filter HID codes and add WMI fan control " Ionut Nechita (Sunlight Linux)
2026-01-07 11:19       ` [PATCH 1/4] HID: asus: Replace magic number with HID_UP_ASUSVENDOR constant Ionut Nechita (Sunlight Linux)
2026-01-07 13:00         ` Denis Benato
2026-01-07 15:13           ` Mario Limonciello
2026-01-07 11:19       ` [PATCH 2/4] HID: asus: Filter spurious HID vendor codes on ROG laptops Ionut Nechita (Sunlight Linux)
2026-01-07 13:02         ` Denis Benato
2026-01-07 15:12         ` Mario Limonciello
2026-01-07 11:19       ` [PATCH 3/4] HID: asus: Add WMI communication infrastructure Ionut Nechita (Sunlight Linux)
2026-01-07 13:07         ` Denis Benato
2026-01-07 15:14           ` Mario Limonciello
2026-01-07 15:20             ` Denis Benato
2026-01-07 11:19       ` Ionut Nechita (Sunlight Linux) [this message]
2026-01-07 13:10         ` [PATCH 4/4] HID: asus: Implement Fn+F5 fan control key handler Denis Benato
2026-01-07 13:00       ` [PATCH v2 0/4] HID: asus: Filter HID codes and add WMI fan control for ROG laptops Denis Benato

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260107111945.48018-10-sunlightlinux@gmail.com \
    --to=sunlightlinux@gmail.com \
    --cc=benato.denis96@gmail.com \
    --cc=bentiss@kernel.org \
    --cc=ionut_n2001@yahoo.com \
    --cc=jikos@kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=superm1@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.