From: "Derek J. Clark" <derekjohn.clark@gmail.com>
To: Ahmed Yaseen <yaseen@ghoul.dev>, platform-driver-x86@vger.kernel.org
Cc: yaseen@ghoul.dev, corentin.chary@gmail.com, luke@ljones.dev,
denis.benato@linux.dev, hansg@kernel.org,
ilpo.jarvinen@linux.intel.com, prasanth.ksr@dell.com,
mpearson-lenovo@squebb.ca, Dell.Client.Kernel@dell.com,
linux-kernel@vger.kernel.org, asus-linux@lists.linux.dev,
mario.limonciello@amd.com
Subject: Re: [PATCH 0/2] asus-armoury: gate PPT writes on active fan curves
Date: Tue, 12 May 2026 08:14:31 -0700 [thread overview]
Message-ID: <79556116-6362-4C2B-ADBA-00A325D79CB5@gmail.com> (raw)
In-Reply-To: <20260511061901.907540-1-yaseen@ghoul.dev>
On May 10, 2026 11:19:14 PM PDT, Ahmed Yaseen <yaseen@ghoul.dev> wrote:
>My first kernel patch series, posted in agreement with Denis Benato (Cc'd).
>
>On 28 ASUS ROG laptop models flagged with requires_fan_curve in the
>asus-armoury DMI power_data table, the BIOS ACPI method SPLX silently
>discards Package Power Tracking (PPT) writes unless the fan mode is
>set to Manual (FANM=4). FANM is set to 4 by the DEFC method when a
>custom fan curve is written. Until then, the WMI DEVS call returns
>success but the firmware ignores the value, so userspace sees no
>effect from writes to ppt_pl1_spl, ppt_pl2_sppt, ppt_pl3_fppt,
>ppt_apu_sppt or ppt_platform_sppt.
>
This very nearly touches on an issue that has been present in the asus_armoury driver for a while, and presents a possible avenue to correct it. When originally adding PPT adjustments it was discussed that doing so should be gated under the "custom" platform profile [1]. This was simple to do for the Lenovo WMI drivers because that interface includes a BIOS custom mode and requires it to be set for PPT settings to take effect. This soft "requirement" was missed when asus_armoury was accepted, and it currently allows PPT settings to override manufacturer intent. Please correct me if I'm wrong, but I believe the fan curves associated in BIOS for low-power, balanced, and performance will not automatically adjust if a user changes the TDP outside of the window. I.e. setting low power and then maximum SPL would leave the fans in a quiet mode.
Since some devices require this bit to be set, it seems like a good opportunity to gate the platform profile under custom, and use custom to set the performance mode and this bit, then allow userspace to set the curve and ppt values.
Adding Mario to CC for his SA/comments on this proposal.
- Derek
1: https://lore.kernel.org/platform-driver-x86/20241206031918.1537-17-mario.limonciello@amd.com/
>The requires_fan_curve flag has existed in the per-model power_data
>entries for some time but was never read. This series wires it up:
>
> Patch 1: Adds the actual gate. Exports
> asus_wmi_custom_fan_curve_is_enabled() from asus-wmi so
> asus-armoury can query fan-curve state across module boundaries,
> and returns -ENODEV with a pr_warn() from the PPT write path on
> affected models when no fan curve is active.
>
> Patch 2: Exposes the same flag to userspace as a read-only sysfs
> attribute (requires_fan_curve) so tools like asusctl and rogcc
> can surface the prerequisite to the user before issuing PPT
> writes. Documented in
> Documentation/ABI/testing/sysfs-class-firmware-attributes.
>
>Testing:
> Verified on G835LW (ROG Strix SCAR 18 2025, requires_fan_curve=true):
> - With no fan curve active, writes to ppt_pl1_spl return -ENODEV
> and the cached value is unchanged.
> - With pwm1_enable=1 on /sys/class/hwmon/.../asus_custom_fan_curve,
> PPT writes succeed and readback matches.
> - The pr_warn fires exactly once per rejected write.
>
> I do not have access to the other 27 affected models. Testers from
> any of these would be appreciated: FX507VI, FX507VV, FX507Z,
> GA402X, GA403UI, GA403UV, GA403WM, GA403WR, GA403WW, GA605W,
> GU605CR, GU605CW, GU605CX, GU605M, G513I, G513QM, G513QY, G513R,
> G614J, G615LR, G634J, G713PV, G733C, G733P, G814J, G834J, G835LR.
>
>Ahmed Yaseen (2):
> platform/x86: asus-armoury: gate PPT writes behind active fan curve
> platform/x86: asus-armoury: expose requires_fan_curve via sysfs
>
> .../testing/sysfs-class-firmware-attributes | 25 +++++++++++++
> drivers/platform/x86/asus-armoury.c | 35 +++++++++++++++++++
> drivers/platform/x86/asus-wmi.c | 28 +++++++++++++++
> include/linux/platform_data/x86/asus-wmi.h | 5 +++
> 4 files changed, 93 insertions(+)
>
next prev parent reply other threads:[~2026-05-12 15:14 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-11 6:19 Ahmed Yaseen
2026-05-11 6:19 ` [PATCH 1/2] platform/x86: asus-armoury: gate PPT writes behind active fan curve Ahmed Yaseen
2026-05-12 15:15 ` Derek J. Clark
2026-05-11 6:19 ` [PATCH 2/2] platform/x86: asus-armoury: expose requires_fan_curve via sysfs Ahmed Yaseen
2026-05-12 15:14 ` Derek J. Clark [this message]
2026-05-13 14:54 ` [PATCH 0/2] asus-armoury: gate PPT writes on active fan curves Ahmed Yaseen
2026-05-19 16:05 ` Derek John Clark
2026-05-13 15:47 ` [PATCH v2 " Ahmed Yaseen
2026-05-13 15:47 ` [PATCH v2 1/2] platform/x86: asus-armoury: gate PPT writes behind active fan curve Ahmed Yaseen
2026-05-16 21:15 ` Mario Limonciello
2026-05-13 15:47 ` [PATCH v2 2/2] platform/x86: asus-armoury: expose requires_fan_curve via sysfs Ahmed Yaseen
2026-05-16 21:17 ` Mario Limonciello
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=79556116-6362-4C2B-ADBA-00A325D79CB5@gmail.com \
--to=derekjohn.clark@gmail.com \
--cc=Dell.Client.Kernel@dell.com \
--cc=asus-linux@lists.linux.dev \
--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=mario.limonciello@amd.com \
--cc=mpearson-lenovo@squebb.ca \
--cc=platform-driver-x86@vger.kernel.org \
--cc=prasanth.ksr@dell.com \
--cc=yaseen@ghoul.dev \
/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
all inboxes | Powered by JetHome®