mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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(+)





  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 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome