* [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support
@ 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
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Marco Scardovi @ 2026-07-28 7:18 UTC (permalink / raw)
To: platform-driver-x86
Cc: luke, ilpo.jarvinen, hansg, corentin.chary, denis.benato,
linux-kernel, Marco Scardovi
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).
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(+)
--
2.55.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] platform/x86: asus-wmi: add Whisper Mode WMI device ID defines
2026-07-28 7:18 [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support Marco Scardovi
@ 2026-07-28 7:18 ` 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
2 siblings, 0 replies; 10+ messages in thread
From: Marco Scardovi @ 2026-07-28 7:18 UTC (permalink / raw)
To: platform-driver-x86
Cc: luke, ilpo.jarvinen, hansg, corentin.chary, denis.benato,
linux-kernel, Marco Scardovi
Add WMI device ID definitions for ASUS Whisper Mode hardware control.
The WMI device IDs used by ASUS laptops to query and configure Whisper
Mode profiles (BIOS Whisper Mode toggle, Dynamic Whisper enable, and Dynamic
Whisper status/control) were missing from asus-wmi.h.
Add ASUS_WMI_DEVID_WHISPER_MODE (0x0012007A), ASUS_WMI_DEVID_WHISPER_ENABLE
(0x00090022), and ASUS_WMI_DEVID_WHISPER_STATUS (0x00090023).
This change only introduces constant macro definitions and has no side effects
on existing driver code.
Assisted-by: Antigravity:gemini-3.6-flash
Signed-off-by: Marco Scardovi <scardracs@disroot.org>
---
include/linux/platform_data/x86/asus-wmi.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h
index b5ed8c83ace1..3971ddc3af15 100644
--- a/include/linux/platform_data/x86/asus-wmi.h
+++ b/include/linux/platform_data/x86/asus-wmi.h
@@ -164,6 +164,11 @@
/* Bootup sound control */
#define ASUS_WMI_DEVID_BOOT_SOUND 0x00130022
+/* Whisper Mode controls */
+#define ASUS_WMI_DEVID_WHISPER_MODE 0x0012007A
+#define ASUS_WMI_DEVID_WHISPER_ENABLE 0x00090022
+#define ASUS_WMI_DEVID_WHISPER_STATUS 0x00090023
+
/* DSTS masks */
#define ASUS_WMI_DSTS_STATUS_BIT 0x00000001
#define ASUS_WMI_DSTS_UNKNOWN_BIT 0x00000002
--
2.55.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/2] platform/x86: asus-armoury: add Whisper Mode attributes
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 ` Marco Scardovi
2026-07-28 11:39 ` [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support Hans de Goede
2 siblings, 0 replies; 10+ messages in thread
From: Marco Scardovi @ 2026-07-28 7:18 UTC (permalink / raw)
To: platform-driver-x86
Cc: luke, ilpo.jarvinen, hansg, corentin.chary, denis.benato,
linux-kernel, Marco Scardovi
Expose Whisper Mode sysfs attributes in asus-armoury.
Certain ASUS laptops support BIOS Whisper Mode acoustic profiles (both dynamic
control and BIOS-level toggle) via WMI.
Add helper attribute groups for:
- whisper_mode (read/write): BIOS Whisper Mode toggle
- whisper_enable (read/write): Enable Dynamic Whisper
- whisper_status (read/write): Dynamic Whisper status and control
And register them in armoury_attr_groups.
No functional impact on existing sysfs attributes; only adds new optional
Whisper Mode attributes when supported by device WMI.
Assisted-by: Antigravity:gemini-3.6-flash
Signed-off-by: Marco Scardovi <scardracs@disroot.org>
---
drivers/platform/x86/asus-armoury.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/platform/x86/asus-armoury.c b/drivers/platform/x86/asus-armoury.c
index 93d9665717af..398b81f15aac 100644
--- a/drivers/platform/x86/asus-armoury.c
+++ b/drivers/platform/x86/asus-armoury.c
@@ -805,6 +805,17 @@ ASUS_ATTR_GROUP_ROG_TUNABLE(nv_tgp, "nv_tgp", ASUS_WMI_DEVID_DGPU_SET_TGP,
ASUS_ATTR_GROUP_INT_VALUE_ONLY_RO(nv_base_tgp, ATTR_NV_BASE_TGP, ASUS_WMI_DEVID_DGPU_BASE_TGP,
"Read the base TGP value");
+/* Whisper Mode attributes */
+ASUS_ATTR_GROUP_BOOL_RW(whisper_mode, "whisper_mode",
+ ASUS_WMI_DEVID_WHISPER_MODE,
+ "Set BIOS Whisper Mode");
+ASUS_ATTR_GROUP_BOOL_RW(whisper_enable, "whisper_enable",
+ ASUS_WMI_DEVID_WHISPER_ENABLE,
+ "Enable Dynamic Whisper");
+ASUS_ATTR_GROUP_BOOL_RW(whisper_status, "whisper_status",
+ ASUS_WMI_DEVID_WHISPER_STATUS,
+ "Dynamic Whisper status and control");
+
/* If an attribute does not require any special case handling add it here */
static const struct asus_attr_group armoury_attr_groups[] = {
{ &egpu_connected_attr_group, ASUS_WMI_DEVID_EGPU_CONNECTED },
@@ -828,6 +839,9 @@ static const struct asus_attr_group armoury_attr_groups[] = {
{ &panel_od_attr_group, ASUS_WMI_DEVID_PANEL_OD },
{ &panel_hd_mode_attr_group, ASUS_WMI_DEVID_PANEL_HD },
{ &screen_auto_brightness_attr_group, ASUS_WMI_DEVID_SCREEN_AUTO_BRIGHTNESS },
+ { &whisper_mode_attr_group, ASUS_WMI_DEVID_WHISPER_MODE },
+ { &whisper_enable_attr_group, ASUS_WMI_DEVID_WHISPER_ENABLE },
+ { &whisper_status_attr_group, ASUS_WMI_DEVID_WHISPER_STATUS },
};
/**
--
2.55.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support
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 ` Hans de Goede
2026-07-28 13:56 ` Marco Scardovi
2 siblings, 1 reply; 10+ messages in thread
From: Hans de Goede @ 2026-07-28 11:39 UTC (permalink / raw)
To: Marco Scardovi, platform-driver-x86
Cc: luke, ilpo.jarvinen, corentin.chary, denis.benato, linux-kernel
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
>
> 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(+)
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support
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
2026-07-29 7:32 ` Hans de Goede
0 siblings, 1 reply; 10+ messages in thread
From: Marco Scardovi @ 2026-07-28 13:56 UTC (permalink / raw)
To: platform-driver-x86, Hans de Goede
Cc: luke, ilpo.jarvinen, corentin.chary, denis.benato, linux-kernel
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(+)
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support
2026-07-28 13:56 ` Marco Scardovi
@ 2026-07-29 7:32 ` Hans de Goede
2026-07-29 13:10 ` Denis Benato
0 siblings, 1 reply; 10+ messages in thread
From: Hans de Goede @ 2026-07-29 7:32 UTC (permalink / raw)
To: Marco Scardovi, platform-driver-x86
Cc: luke, ilpo.jarvinen, corentin.chary, denis.benato, linux-kernel
Hi Marco,
On 28-Jul-26 15:56, Marco Scardovi wrote:
> 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.
Thank you for clarifying things. Since the EC/BIOS interface sees this
as 2 independent settings, I agree that exposing this as a firmware
attr is the best way to expose this.
Its a bit weird that one can select Performance profile and enable
whisper mode at the same time. But if that is how the Asus firmware
interfaces work, then that is how it is.
Regards,
Hans
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support
2026-07-29 7:32 ` Hans de Goede
@ 2026-07-29 13:10 ` Denis Benato
2026-07-29 13:22 ` Marco Scardovi
0 siblings, 1 reply; 10+ messages in thread
From: Denis Benato @ 2026-07-29 13:10 UTC (permalink / raw)
To: Hans de Goede, Marco Scardovi, platform-driver-x86
Cc: luke, ilpo.jarvinen, corentin.chary, linux-kernel
On 7/29/26 09:32, Hans de Goede wrote:
> Hi Marco,
>
> On 28-Jul-26 15:56, Marco Scardovi wrote:
>> 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.
> Thank you for clarifying things. Since the EC/BIOS interface sees this
> as 2 independent settings, I agree that exposing this as a firmware
> attr is the best way to expose this.
>
> Its a bit weird that one can select Performance profile and enable
> whisper mode at the same time. But if that is how the Asus firmware
> interfaces work, then that is how it is.
Hello Hans and Marco,
I agree that this is weird and we don't have a device with whisper mode,
but there is the possibility of the official windows app allowing whisper mode
only on certain modes: we would need to find someone with windows
to confirm this, but I also don't think binding whisper to quiet/low performance
is a bad idea.
My opinion is that either whisper gets its own profile and is a combination of
quiet + whisper set to 1 or we check what windows does since I don't want
to have hardware running in configurations that ASUS never intended to.
Best regards,
Denis
> Regards,
>
> Hans
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support
2026-07-29 13:10 ` Denis Benato
@ 2026-07-29 13:22 ` Marco Scardovi
2026-07-29 13:34 ` Denis Benato
0 siblings, 1 reply; 10+ messages in thread
From: Marco Scardovi @ 2026-07-29 13:22 UTC (permalink / raw)
To: Hans de Goede, platform-driver-x86, Denis Benato
Cc: luke, ilpo.jarvinen, corentin.chary, linux-kernel
In data mercoledì 29 luglio 2026 15:10:56 Ora legale dell’Europa centrale, Denis Benato ha scritto:
>
> On 7/29/26 09:32, Hans de Goede wrote:
> > Hi Marco,
> >
> > On 28-Jul-26 15:56, Marco Scardovi wrote:
> >> 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.
> > Thank you for clarifying things. Since the EC/BIOS interface sees this
> > as 2 independent settings, I agree that exposing this as a firmware
> > attr is the best way to expose this.
> >
> > Its a bit weird that one can select Performance profile and enable
> > whisper mode at the same time. But if that is how the Asus firmware
> > interfaces work, then that is how it is.
> Hello Hans and Marco,
>
> I agree that this is weird and we don't have a device with whisper mode,
> but there is the possibility of the official windows app allowing whisper mode
> only on certain modes: we would need to find someone with windows
> to confirm this, but I also don't think binding whisper to quiet/low performance
> is a bad idea.
>
> My opinion is that either whisper gets its own profile and is a combination of
> quiet + whisper set to 1 or we check what windows does since I don't want
> to have hardware running in configurations that ASUS never intended to.
>
> Best regards,
> Denis
> > Regards,
> >
> > Hans
> >
> >
>
Hi Denis,
I made more checks on Whisper Mode and find out why it isn't under a single
power profile: it works the contrary of power profiles.
To be more specific: while power profiles tends to match the fans with the
TDP, in Whisper Mode it sets the max power (if under performance) but cut
it if the dB/RPMs are too high to respect the Whisper Mode. So it basically
works for any power profiles but instead of pushing up the fans to cool the
CPU/GPU, it kills the power to maintain the loudness in check
Let me know if it is a feature you want or not. If we end up deciding to kill
it feel free to let me know.
Best regards,
Marco
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support
2026-07-29 13:22 ` Marco Scardovi
@ 2026-07-29 13:34 ` Denis Benato
2026-07-29 14:43 ` Marco Scardovi
0 siblings, 1 reply; 10+ messages in thread
From: Denis Benato @ 2026-07-29 13:34 UTC (permalink / raw)
To: Marco Scardovi, Hans de Goede, platform-driver-x86
Cc: luke, ilpo.jarvinen, corentin.chary, linux-kernel
On 7/29/26 15:22, Marco Scardovi wrote:
> In data mercoledì 29 luglio 2026 15:10:56 Ora legale dell’Europa centrale, Denis Benato ha scritto:
>> On 7/29/26 09:32, Hans de Goede wrote:
>>> Hi Marco,
>>>
>>> On 28-Jul-26 15:56, Marco Scardovi wrote:
>>>> 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.
>>> Thank you for clarifying things. Since the EC/BIOS interface sees this
>>> as 2 independent settings, I agree that exposing this as a firmware
>>> attr is the best way to expose this.
>>>
>>> Its a bit weird that one can select Performance profile and enable
>>> whisper mode at the same time. But if that is how the Asus firmware
>>> interfaces work, then that is how it is.
>> Hello Hans and Marco,
>>
>> I agree that this is weird and we don't have a device with whisper mode,
>> but there is the possibility of the official windows app allowing whisper mode
>> only on certain modes: we would need to find someone with windows
>> to confirm this, but I also don't think binding whisper to quiet/low performance
>> is a bad idea.
>>
>> My opinion is that either whisper gets its own profile and is a combination of
>> quiet + whisper set to 1 or we check what windows does since I don't want
>> to have hardware running in configurations that ASUS never intended to.
>>
>> Best regards,
>> Denis
>>> Regards,
>>>
>>> Hans
>>>
>>>
> Hi Denis,
> I made more checks on Whisper Mode and find out why it isn't under a single
> power profile: it works the contrary of power profiles.
>
> To be more specific: while power profiles tends to match the fans with the
> TDP, in Whisper Mode it sets the max power (if under performance) but cut
> it if the dB/RPMs are too high to respect the Whisper Mode. So it basically
> works for any power profiles but instead of pushing up the fans to cool the
> CPU/GPU, it kills the power to maintain the loudness in check
Alright, perfect.
> Let me know if it is a feature you want or not. If we end up deciding to kill
> it feel free to let me know.
Yes I want this to be in the kernel: I simply don't want to do things that
were never intended to be done, other than that I have no reservations.
So you have my OK with these.
Thank you,
Denis
> Best regards,
> Marco
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support
2026-07-29 13:34 ` Denis Benato
@ 2026-07-29 14:43 ` Marco Scardovi
0 siblings, 0 replies; 10+ messages in thread
From: Marco Scardovi @ 2026-07-29 14:43 UTC (permalink / raw)
To: Hans de Goede, platform-driver-x86, Denis Benato
Cc: luke, ilpo.jarvinen, corentin.chary, linux-kernel
In data mercoledì 29 luglio 2026 15:34:28 Ora legale dell’Europa centrale, Denis Benato ha scritto:
>
> On 7/29/26 15:22, Marco Scardovi wrote:
> > In data mercoledì 29 luglio 2026 15:10:56 Ora legale dell’Europa centrale, Denis Benato ha scritto:
> >> On 7/29/26 09:32, Hans de Goede wrote:
> >>> Hi Marco,
> >>>
> >>> On 28-Jul-26 15:56, Marco Scardovi wrote:
> >>>> 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.
> >>> Thank you for clarifying things. Since the EC/BIOS interface sees this
> >>> as 2 independent settings, I agree that exposing this as a firmware
> >>> attr is the best way to expose this.
> >>>
> >>> Its a bit weird that one can select Performance profile and enable
> >>> whisper mode at the same time. But if that is how the Asus firmware
> >>> interfaces work, then that is how it is.
> >> Hello Hans and Marco,
> >>
> >> I agree that this is weird and we don't have a device with whisper mode,
> >> but there is the possibility of the official windows app allowing whisper mode
> >> only on certain modes: we would need to find someone with windows
> >> to confirm this, but I also don't think binding whisper to quiet/low performance
> >> is a bad idea.
> >>
> >> My opinion is that either whisper gets its own profile and is a combination of
> >> quiet + whisper set to 1 or we check what windows does since I don't want
> >> to have hardware running in configurations that ASUS never intended to.
> >>
> >> Best regards,
> >> Denis
> >>> Regards,
> >>>
> >>> Hans
> >>>
> >>>
> > Hi Denis,
> > I made more checks on Whisper Mode and find out why it isn't under a single
> > power profile: it works the contrary of power profiles.
> >
> > To be more specific: while power profiles tends to match the fans with the
> > TDP, in Whisper Mode it sets the max power (if under performance) but cut
> > it if the dB/RPMs are too high to respect the Whisper Mode. So it basically
> > works for any power profiles but instead of pushing up the fans to cool the
> > CPU/GPU, it kills the power to maintain the loudness in check
> Alright, perfect.
> > Let me know if it is a feature you want or not. If we end up deciding to kill
> > it feel free to let me know.
> Yes I want this to be in the kernel: I simply don't want to do things that
> were never intended to be done, other than that I have no reservations.
>
> So you have my OK with these.
>
>
> Thank you,
> Denis
>
> > Best regards,
> > Marco
> >
> >
>
Hi everyone,
I've made more and more studies about Whisper Mode and dumped my own laptop
to set my mind straight about Whisper Mode, because I had some more doubts
about it.
TL;DR: Adding Whisper Mode is not useful for our drivers.
TL;DR 2: Whisper Mode enables only when power profile Quiet is set.
Whole version:
After dumping the ACPI DSDT tables and testing runtime calls via a diagnostic
module on real hardware, I verified that the Embedded Controller (EC) automatically
manages Whisper Mode acoustic capping whenever `platform_profile` is set to "quiet"
(thermal policy 0x00120075 = 2).
This behavior applies to both internal hardware and connected eGPUs. Because the
EC handles Whisper Mode natively within the quiet profile, discrete queries/writes
to WMI IDs 0x0012007A and 0x00090022 return 0xFFFFFFFE (unsupported).
Therefore, exposing standalone Whisper Mode sysfs attributes is unnecessary,
as `platform_profile = quiet` already provides full Whisper Mode functionality.
Best regards,
Marco
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-07-29 14:43 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
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
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.