Re: [PATCH 0/2] platform/x86: asus-armoury: add Whisper Mode support
Marco Scardovi <[email protected]> Tue, 28 Jul 2026 15:56:02 +0200
| Newsgroups | org.kernel.vger.platform-driver-x86,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
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(+)