From nobody Wed Feb 11 06:30:15 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (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 247AF30ACE8 for ; Wed, 7 Jan 2026 11:20:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767784845; cv=none; b=jMpZfuuGc8TzGrwNyWUNCi/AL7q8fcVyzr7Ph4jvQl85gSrBjekCWcN7m5kaYm84kZgsik0qBfUnQW45E13D7jlIdrYIO9MJFPcoJ6TjOh8TeASsYMIoprtRyx1Q9+B6Nkjji+6X6AcUWR9KjTZtOgMeLTCnK29qBdqBH9ujqtc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767784845; c=relaxed/simple; bh=75OT4VBTXhb4+iZyrygf3VNRp5IxOj3TrpfZYW0VvUw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gR10ck3blVoPJG99lQ2HbCndeoSvTCGyUQmRcpMks29AKLLezZZYyKqFyxuJM4j1ob5ASeTSdCB9H/LB2dp87o45j3P2y/dAbB8sZaUWHWj/E/CcZjg1UN7bYlpdxpQ7C8vwI1hu3bK+icyGPQKz8mhY7s8O+mSk/2N7Z7lDhTk= 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=C7XxdatI; arc=none smtp.client-ip=209.85.128.43 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="C7XxdatI" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-4775ae5684fso9138225e9.1 for ; Wed, 07 Jan 2026 03:20:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767784842; x=1768389642; 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=4AiH+3Np39EevPYd1cmAw7r/LCFkel4dQzhGFB22cXo=; b=C7XxdatIDOuV6pa2O6sDkxj+GU+UWHLjz81vRifU6jD8u+bHFPYjx/VO4d5W7OKepq pMb80RuqZfVz6lahegH+SCsAJFOeacwXDBFieVz6WKpi+TcmYnPmDrs4TJaW+lw21snX PQT9xgneTlI0r8ogO6iZbtvUVeLFtkKjFX/c/hgFEXL3y+wZN+nKRV0Cjf5kUm151Xc5 hTGjJrDV4JrBDubYxo/DTwgez/IvuPGHGKaTlRWEvmfdPDS6vhf0YuVcMQ1UMqDUeZ2b fNtxd8Z6jMo3iQPb8MKnWLXVcoVGwcBPn/dvsLqIQ20fsBAkaLqqm9xIASjgcCAxVTvB f4TA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767784842; x=1768389642; 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=4AiH+3Np39EevPYd1cmAw7r/LCFkel4dQzhGFB22cXo=; b=alv10lTRWRaUVp+2vjF6IRv44wTmKCN6I7NRIkpXrLCPme5hZJqhA6aKZVRr5GOose tvw6eVkjxU10c3TPrIKsTCVmdkRQFfYP4X8wmp7WndlldDw/nIPz2zO8QpITivTo2lfB fr63vFK8OE+HPO24W/pZTq+g7biECTdG9QVU59d8eVXNeyAuhW0E4Smr4zZzoqpuUCFd TIJQrhIAc6stnUErsq6HovR2lXUz3oxEeUfy/LowQYQyX2x8uxVuBa1fcpfoZUhS+sf5 nu6D9sVO8xLeJM3I3k7G/E/zl0rERb4JKST+2XU/kmPDOJXdlJD8dqOvmBxf0X/o4HRN z08g== X-Forwarded-Encrypted: i=1; AJvYcCVthupeDrjZxMPH9kcSrIQYxKh8t92MM2fGHV+iamaQpkK6m+q4mmW8EjO9JaEaHoqwFEA1JIdMz9MXKHI=@vger.kernel.org X-Gm-Message-State: AOJu0Yxh93IZ/mlByttqn18RFNct0E/N73bSU1BiwYoaQ6ioUmw++UyS j22887FePNv+WcYwa1lbxPPntOYFNUJDoXpIm8TAgraHoKyhqDWyCacR X-Gm-Gg: AY/fxX46T5FIzJR7HWuMUQmsXRt59hsGQDakRrmF3NrMONLHSGZSJ136+M83iBsXFo5 zEvgwAn46aWq/vWURMqQl5g+qlsEbe5L3IqYJvIKlgBibIHEH97dnoftOY5Y2NOao+IMEveYhAH esI84F0AjL828nEGck2wuCjsRS2ZafPGx/GHvNvZ/HGLKBchpQygwadqjnuK99/1/VmlUHLMcew 7q/NuX5fAngLgPRk3XmXGHA7XkKJF9OW/RsIHWKJI4wtKuV9pCWEmThjonvs4HpVJas8bqFkG3s o2a7hx1uItiJijNMOyL4YwGSPNFhCwNZi0LRvChkSEOQdfmzrnalTfj9H4L9r82mRiH9kvXn7+A 6F9NLnFyJ9bcEw5CQNDffjVTo40jRgmKZNIlZGm/1hOvDY7ds9ju0jPzEZi0bH2YdvX7Gn8f1/+ TvHjusex8wheT02bQ4RYJPUlR26wsERV+KUXjJAuc= X-Google-Smtp-Source: AGHT+IHStTre6RcNVG2fgEwYMM9+sR9sGgPpfvxCsnoCn60JW7GI+cQYpyrknTEVIKGw6Or+Txim1w== X-Received: by 2002:a05:6000:310b:b0:431:7a0:dbbb with SMTP id ffacd0b85a97d-432c374ff56mr2883888f8f.33.1767784842231; Wed, 07 Jan 2026 03:20:42 -0800 (PST) Received: from ionutnechita-arz2022.local ([2a02:2f0e:ca09:7000:33fc:5cce:3767:6b22]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd5ede7esm9733210f8f.32.2026.01.07.03.20.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Jan 2026 03:20:41 -0800 (PST) From: "Ionut Nechita (Sunlight Linux)" 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 Message-ID: <20260107111945.48018-10-sunlightlinux@gmail.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260107111945.48018-2-sunlightlinux@gmail.com> References: <10abfaa7-9f5b-494c-8bb5-5da53c087fc4@kernel.org> <20260107111945.48018-2-sunlightlinux@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: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ionut Nechita 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 --- 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 =20 +/* Special key codes */ +#define ASUS_FAN_CTRL_KEY_CODE 0xae + #define SUPPORT_KBD_BACKLIGHT BIT(0) =20 #define MAX_TOUCH_MAJOR 8 @@ -379,12 +382,21 @@ static int asus_raw_event(struct hid_device *hdev, if (report->id =3D=3D FEATURE_KBD_LED_REPORT_ID1 || report->id =3D=3D FEA= TURE_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 =3D=3D FEATURE_KBD_REPORT_ID) { + /* Fn+F5 fan control key, send WMI event to toggle fan mode */ + if (data[1] =3D=3D ASUS_FAN_CTRL_KEY_CODE) { + int ret =3D 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] =3D=3D ASUS_SPURIOUS_CODE_0XEA || data[1] =3D=3D ASUS_SPURIOUS_CODE_0XEC || data[1] =3D=3D ASUS_SPURIOUS_CODE_0X02 || --=20 2.52.0