From: Marco Scardovi <scardracs@disroot.org>
To: platform-driver-x86@vger.kernel.org, Hans de Goede <hansg@kernel.org>
Cc: luke@ljones.dev, ilpo.jarvinen@linux.intel.com,
corentin.chary@gmail.com, denis.benato@linux.dev,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support
Date: Tue, 28 Jul 2026 15:56:02 +0200 [thread overview]
Message-ID: <y0qKqYgBT5Cpfe4BHTFqrA@disroot.org> (raw)
In-Reply-To: <d88d0945-71e0-4d21-b154-d0d837624858@kernel.org>
In data martedì 28 luglio 2026 13:39:39 Ora legale dell’Europa centrale, Hans
de Goede ha scritto:
> Hi,
>
> Thank you for your patch.
>
> On 28-Jul-26 09:18, Marco Scardovi wrote:
> > This series introduces support for ASUS WMI Whisper Mode hardware controls
> > in the asus-wmi header and asus-armoury driver.
> >
> > Background & Findings:
> > ----------------------
> > After talking with Denis and thanks to NeuroMarshal reverse engineering
> > and
> > firmware trace analysis on modern ASUS laptops, three specific WMI Device
> > IDs were identified that manage acoustic profiles and thermal regulation
> > under ASUS Whisper Mode:
> >
> > 1. ASUS_WMI_DEVID_WHISPER_MODE (0x0012007A):
> > - Controls the BIOS-level Whisper Mode acoustic profile toggle
> > (read/write boolean).>
> > 2. ASUS_WMI_DEVID_WHISPER_ENABLE (0x00090022):
> > - Enables or disables Dynamic Whisper acoustic regulation (read/write
> > boolean).>
> > 3. ASUS_WMI_DEVID_WHISPER_STATUS (0x00090023):
> > - Reports status and allows runtime control over Dynamic Whisper state
> > (read/write boolean).
> I wonder how this interacts with the platform_profile stuff ?
>
> I would expect enabling whisper mode to lower the max performance,
> so does this automatically change the platform_profile away
> from performance when it is set to performance ?
>
> Note the platform_profile API is extensible. To me it seems more
> logical to expose this as a whisper mode platform-profile ?
>
> Regards,
>
> Hans
Hi Hans,
Thanks for the feedback!
Here you can find my opinions on your questions.
1. Interaction with platform_profile:
In ASUS laptops, where presents, Whisper Mode operates as an
independent boolean toggle/feature controlling fan acoustic target limits in
firmware/EC, rather than acting as a global thermal profile. Setting
WHISPER_MODE or WHISPER_ENABLE via WMI sends a direct call to the EC/BIOS,
which adjusts acoustic thresholds internally without altering the active
platform_profile state (throttle_thermal_policy) in asus-wmi. IIRC on Windows
it even permits to "hear" the ambient to make the fans run in a way to blend
with the ambient noise.
2. platform_profile vs firmware_attributes (asus-armoury):
platform_profile is designed for mutually exclusive global power/thermal
modes (Quiet, Balanced, Performance). Whisper Mode, on the other hand,
consists of independent BIOS feature toggles (0/1 controls for BIOS Whisper
Mode, Dynamic Whisper Enable, and Status).
Since asus-armoury is dedicated to exposing BIOS/Armoury Crate firmware
attributes via fw_attributes_class (similar to nv_dynamic_boost,
nv_temp_target, panel_od, etc.), exposing these three WMI controls as
sysfs firmware attributes fits the overall design of asus-armoury much
better than extending platform_profile.
I hope I've been of help. Feel free to let me know if you have more
questions: I'll try to answer the best of my capacities.
Best regards,
Marco
>
> > Series Overview:
> > ----------------
> > - Patch 1/2: Adds WMI Device ID macro definitions to
> >
> > include/linux/platform_data/x86/asus-wmi.h.
> >
> > - Patch 2/2: Exposes whisper_mode, whisper_enable, and whisper_status
> > sysfs
> >
> > attribute groups in drivers/platform/x86/asus-armoury.c.
> >
> > Safety & Compatibility:
> > -----------------------
> > All newly introduced attributes are probed via armoury_has_devstate()
> > before sysfs registration. On devices where these WMI methods are not
> > implemented by firmware, the sysfs nodes are gracefully omitted without
> > impacting existing attributes or functionality.
> >
> > Validation:
> > -----------
> > - Build verification against linux-next cleanly with zero warnings or
> > errors. - Coding style and formatting verified via git diff --check.
> >
> > Note:
> > -----------
> > Unfortunately, due to it being missing on my laptop, I'm not able to
> > verify
> > if the WhisperMode works as intended. The values are the same reported by
> > NeuroMarshal on his reverse engineering of Armoury Crate [1] so they
> > *should* work.
> >
> > [1] https://github.com/NeuroMarshal/armoury-linux-probe
> >
> > Marco Scardovi (2):
> > platform/x86: asus-wmi: add Whisper Mode WMI device ID defines
> > platform/x86: asus-armoury: add Whisper Mode attributes
> >
> > drivers/platform/x86/asus-armoury.c | 14 ++++++++++++++
> > include/linux/platform_data/x86/asus-wmi.h | 5 +++++
> > 2 files changed, 19 insertions(+)
next prev parent reply other threads:[~2026-07-28 13:56 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-28 7:18 [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support Marco Scardovi
2026-07-28 7:18 ` [PATCH 1/2] platform/x86: asus-wmi: add Whisper Mode WMI device ID defines Marco Scardovi
2026-07-28 7:18 ` [PATCH 2/2] platform/x86: asus-armoury: add Whisper Mode attributes Marco Scardovi
2026-07-28 11:39 ` [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support Hans de Goede
2026-07-28 13:56 ` Marco Scardovi [this message]
2026-07-29 7:32 ` Hans de Goede
2026-07-29 13:10 ` Denis Benato
2026-07-29 13:22 ` Marco Scardovi
2026-07-29 13:34 ` Denis Benato
2026-07-29 14:43 ` Marco Scardovi
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=y0qKqYgBT5Cpfe4BHTFqrA@disroot.org \
--to=scardracs@disroot.org \
--cc=corentin.chary@gmail.com \
--cc=denis.benato@linux.dev \
--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.