* [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.