From: Bartu Alev <bartualev@gmail.com>
To: platform-driver-x86@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, "Hans de Goede" <hansg@kernel.org>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Luke D . Jones" <luke@ljones.dev>,
"Denis Benato" <benato.denis96@gmail.com>,
"Bartu Alev" <bartualev@gmail.com>
Subject: [PATCH v2 0/2] platform/x86: asus-wmi: Fix TUF keyboard shutdown naming and add RGB readback
Date: Sat, 26 Sep 2026 03:56:23 +0300 [thread overview]
Message-ID: <20260926005625.171560-1-bartualev@gmail.com> (raw)
In-Reply-To: <20260925200744.129714-1-bartualev@gmail.com>
This series fixes the historical misnomer of the TUF keyboard
shutdown power-state flag and adds sysfs readback support for the
TUF RGB mode and power states.
Patch 1 relabels the fourth state field of kbd_rgb_state_index from
"keyboard" to "shutdown": BIT(7) gates the keyboard backlight during
the ACPI S5 power-off sequence (A/B verified on FA507NV: bit set =
keyboard lights up white at power-off, clear = dark shutdown).
Patch 2 adds readback support via DSTS 0x0010005B, which evaluates
the DSDT method EC0.KBLS() and returns the live EC RAM state as a
16-byte buffer (mode, R/G/B, speed, power flags). Both kbd_rgb_mode
and kbd_rgb_state become readable.
Re: the cmd field question raised during review of v1 - the KBLS
buffer carries no command byte. "Immediate (0xb3) vs save (0xb4)" is
a property of the write verb, consumed by the SMM handler; neither
the EC firmware nor the ERM2 mirror retains it, and both verbs result
in the same applied state (verified by writing with cmd=0 and cmd=1
and reading back identical semantics). The leading '1' in the output
is therefore synthetic, chosen as the canonical input form so that
readback round-trips with what userspace writes.
Changes in v2:
- Split into a 2-patch series:
* patch 1: isolated naming fix with a Fixes: tag for -stable
* patch 2: the readback feature
- Renamed the new DEVID to ASUS_WMI_DEVID_TUF_RGB_READBACK to avoid
confusion with ASUS_WMI_DEVID_TUF_RGB_STATE.
- Documented the synthetic cmd field in the patch 2 commit message
and here.
Bartu Alev (2):
platform/x86: asus-wmi: fix TUF keyboard power state shutdown naming
platform/x86: asus-wmi: add TUF keyboard RGB readback support
drivers/platform/x86/asus-wmi.c | 87 ++++++++++++++++++++--
include/linux/platform_data/x86/asus-wmi.h | 3 +
2 files changed, 84 insertions(+), 6 deletions(-)
--
2.55.0
next prev parent reply other threads:[~2026-09-26 0:58 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-25 20:07 [PATCH v1] platform/x86: asus-wmi: add TUF keyboard RGB readback support Bartu Alev
2026-09-25 20:25 ` Denis Benato
2026-09-26 0:56 ` Bartu Alev [this message]
2026-09-26 0:56 ` [PATCH v2 1/2] platform/x86: asus-wmi: fix TUF keyboard power state shutdown naming Bartu Alev
2026-10-08 12:22 ` Ilpo Järvinen
2026-09-26 0:56 ` [PATCH v2 2/2] platform/x86: asus-wmi: add TUF keyboard RGB readback support Bartu Alev
2026-09-26 1:41 ` Denis Benato
2026-10-08 12:48 ` Ilpo Järvinen
2026-10-08 21:52 ` 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=20260926005625.171560-1-bartualev@gmail.com \
--to=bartualev@gmail.com \
--cc=benato.denis96@gmail.com \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luke@ljones.dev \
--cc=platform-driver-x86@vger.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.