From: Antheas Kapenekakis <lkml@antheas.dev>
To: mario.limonciello@amd.com, mpearson-lenovo@squebb.ca
Cc: ilpo.jarvinen@linux.intel.com, lenb@kernel.org,
linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
platform-driver-x86@vger.kernel.org, rafael@kernel.org,
hdegoede@redhat.com, me@kylegospodneti.ch,
Antheas Kapenekakis <lkml@antheas.dev>
Subject: [PATCH 0/3] ACPI: platform_profile: fix legacy sysfs with multiple handlers
Date: Mon, 24 Feb 2025 20:50:56 +0100 [thread overview]
Message-ID: <20250224195059.10185-1-lkml@antheas.dev> (raw)
On the Asus Z13 (2025), a device that would need the amd-pmf quirk that
was removed on the platform_profile refactor, we see the following output
from the sysfs platform profile:
$ cat /sys/firmware/acpi/platform_profile_choices
balanced performance
I.e., the quiet profile is missing. Which is a major regression in terms of
power efficiency and affects both tuned, and ppd (it also affected my
software but I fixed that on Saturday). This would affect any laptop that
loads both amd-pmf and asus-wmi (around 15 models give or take?).
The problem stems from the fact that asus-wmi uses quiet, and amd-pmf uses
low-power. While it is not clear to me what the amd-pmf module is supposed
to do here, and perhaps some autodetection should be done and make it bail,
if we assume it should be kept, then there is a small refactor that is
needed to maintain the existing ABI interface.
This is the subject of this patch series.
Essentially, we introduce the concept of a "secondary" handler. Secondary
handlers work exactly the same, except for the fact they are able to
receive all profile names through the sysfs interface. The expectation
here would be that the handlers choose the closest appropriate profile
they have, and this is what I did for the amd-pmf handler.
In their own platform_profile namespace, these handlers still work normally
and only accept the profiles from their probe functions, with -ENOSUP for
the rest.
In the absence of a primary handler, the options of all secondary handlers
are unioned in the legacy sysfs, which prevents them from hiding each
other's options.
With this patch series applied, the sysfs interface will look like this:
$ cat /sys/firmware/acpi/platform_profile_choices
quiet balanced performance
And writing quiet to it results in the profile being applied to both
platform profile handlers.
$ echo low-power > /sys/firmware/acpi/platform_profile
bash: echo: write error: Operation not supported
$ echo quiet > /sys/firmware/acpi/platform_profile
$ cat /sys/class/platform-profile/platform-profile-*/{name,profile}
asus-wmi
amd-pmf
quiet
quiet
Agreed ABI still works:
$ echo quiet > /sys/class/platform-profile/platform-profile-0/profile
$ echo quiet > /sys/class/platform-profile/platform-profile-1/profile
bash: echo: write error: Operation not supported
$ echo low-power > /sys/class/platform-profile/platform-profile-0/profile
bash: echo: write error: Operation not supported
$ echo low-power > /sys/class/platform-profile/platform-profile-1/profile
Antheas Kapenekakis (3):
ACPI: platform_profile: Add support for secondary handlers
ACPI: platform_profile: add all options to amd-pmf as a secondary
handler
ACPI: platform_profile: Do not hide options missing in secondary
handlers
drivers/acpi/platform_profile.c | 57 +++++++++++++++++++++++++-----
drivers/platform/x86/amd/pmf/spc.c | 3 ++
drivers/platform/x86/amd/pmf/sps.c | 8 +++++
include/linux/platform_profile.h | 7 ++++
4 files changed, 67 insertions(+), 8 deletions(-)
--
2.48.1
next reply other threads:[~2025-02-24 19:51 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-24 19:50 Antheas Kapenekakis [this message]
2025-02-24 19:50 ` [PATCH 1/3] ACPI: platform_profile: Add support for secondary handlers Antheas Kapenekakis
2025-02-24 19:50 ` [PATCH 2/3] ACPI: platform_profile: add all options to amd-pmf as a secondary handler Antheas Kapenekakis
2025-02-24 19:50 ` [PATCH 3/3] ACPI: platform_profile: Do not hide options missing in secondary handlers Antheas Kapenekakis
2025-02-27 17:48 ` kernel test robot
2025-02-24 20:27 ` [PATCH 0/3] ACPI: platform_profile: fix legacy sysfs with multiple handlers Mario Limonciello
2025-02-24 20:31 ` Antheas Kapenekakis
2025-02-24 20:52 ` Mark Pearson
2025-02-24 21:08 ` Antheas Kapenekakis
2025-02-24 21:51 ` Luke Jones
2025-02-24 21:58 ` Antheas Kapenekakis
2025-02-24 22:49 ` Armin Wolf
2025-02-24 22:55 ` Antheas Kapenekakis
2025-02-24 22:58 ` Antheas Kapenekakis
2025-02-25 20:22 ` Rafael J. Wysocki
2025-02-25 20:24 ` Antheas Kapenekakis
2025-02-26 20:03 ` Rafael J. Wysocki
2025-02-26 22:15 ` Antheas Kapenekakis
2025-02-25 1:34 ` Luke Jones
2025-02-25 2:26 ` Antheas Kapenekakis
2025-02-25 15:56 ` Armin Wolf
2025-02-25 16:27 ` Antheas Kapenekakis
2025-02-24 22:42 ` Armin Wolf
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=20250224195059.10185-1-lkml@antheas.dev \
--to=lkml@antheas.dev \
--cc=hdegoede@redhat.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mario.limonciello@amd.com \
--cc=me@kylegospodneti.ch \
--cc=mpearson-lenovo@squebb.ca \
--cc=platform-driver-x86@vger.kernel.org \
--cc=rafael@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox