Message ID | 20241028020131.8031-1-mario.limonciello@amd.com (mailing list archive) |
---|---|
Headers | show |
Series | Add support for binding ACPI platform profile to multiple drivers | expand |
Hi Mario, On 28-Oct-24 3:01 AM, Mario Limonciello wrote: > Currently there are a number of ASUS products on the market that happen to > have ACPI objects for amd-pmf to bind to as well as an ACPI platform profile > provided by asus-wmi. > > The ACPI platform profile support created by amd-pmf on these ASUS products is "Function 9" > which is specifically for "BIOS or EC notification" of power slider position. > This feature is actively used by some designs such as Framework 13 and Framework 16. > > On these ASUS designs we keep on quirking more and more of them to turn off this > notification so that asus-wmi can bind. > > This however isn't how Windows works. "Multiple" things are notified for the power > slider position. This series adjusts Linux to behave similarly. > > Multiple drivers can now register an ACPI platform profile and will react to set requests. > > To avoid chaos, only positions that are common to both drivers are accepted. > > This also allows dropping all of the PMF quirks from amd-pmf. > > v2: > * Split to many more patches > * Account for feedback from M/L Thank you for the new version. I just did a quick check of patches 8 - 13 and this looks much better. I see from various discussions that a v3 is incoming so I've not done a full review of patches 8 - 13. Regards, Hans > > Mario Limonciello (15): > ACPI: platform-profile: Add a name member to handlers > platform/surface: aggregator: Add platform handler pointer to device > ACPI: platform_profile: Add platform handler argument to > platform_profile_remove() > ACPI: platform_profile: Add a list to platform profile handler > ACPI: platform_profile: Move sanity check out of the mutex > ACPI: platform_profile: Use guard(mutex) for register/unregister > ACPI: platform_profile: Only remove group when no more handler > registered > ACPI: platform_profile: Require handlers to support balanced profile > ACPI: platform_profile: Notify change events on register and > unregister > ACPI: platform_profile: Only show profiles common for all handlers > ACPI: platform_profile: Set profile for all registered handlers > ACPI: platform_profile: Make sure all profile handlers agree on > profile > ACPI: platform_profile: Check all profile handler to calculate next > ACPI: platform_profile: Allow multiple handlers > platform/x86/amd: pmf: Drop all quirks > > drivers/acpi/platform_profile.c | 258 +++++++++++------- > .../surface/surface_platform_profile.c | 7 +- > drivers/platform/x86/acer-wmi.c | 5 +- > drivers/platform/x86/amd/pmf/Makefile | 2 +- > drivers/platform/x86/amd/pmf/core.c | 1 - > drivers/platform/x86/amd/pmf/pmf-quirks.c | 66 ----- > drivers/platform/x86/amd/pmf/pmf.h | 3 - > drivers/platform/x86/amd/pmf/sps.c | 3 +- > drivers/platform/x86/asus-wmi.c | 5 +- > drivers/platform/x86/dell/dell-pc.c | 3 +- > drivers/platform/x86/hp/hp-wmi.c | 3 +- > drivers/platform/x86/ideapad-laptop.c | 3 +- > .../platform/x86/inspur_platform_profile.c | 5 +- > drivers/platform/x86/thinkpad_acpi.c | 3 +- > include/linux/platform_profile.h | 4 +- > 15 files changed, 190 insertions(+), 181 deletions(-) > delete mode 100644 drivers/platform/x86/amd/pmf/pmf-quirks.c >
On 10/30/2024 08:41, Hans de Goede wrote: > Hi Mario, > > On 28-Oct-24 3:01 AM, Mario Limonciello wrote: >> Currently there are a number of ASUS products on the market that happen to >> have ACPI objects for amd-pmf to bind to as well as an ACPI platform profile >> provided by asus-wmi. >> >> The ACPI platform profile support created by amd-pmf on these ASUS products is "Function 9" >> which is specifically for "BIOS or EC notification" of power slider position. >> This feature is actively used by some designs such as Framework 13 and Framework 16. >> >> On these ASUS designs we keep on quirking more and more of them to turn off this >> notification so that asus-wmi can bind. >> >> This however isn't how Windows works. "Multiple" things are notified for the power >> slider position. This series adjusts Linux to behave similarly. >> >> Multiple drivers can now register an ACPI platform profile and will react to set requests. >> >> To avoid chaos, only positions that are common to both drivers are accepted. >> >> This also allows dropping all of the PMF quirks from amd-pmf. >> >> v2: >> * Split to many more patches >> * Account for feedback from M/L > > Thank you for the new version. I just did a quick check of > patches 8 - 13 and this looks much better. > > I see from various discussions that a v3 is incoming so I've > not done a full review of patches 8 - 13. > Yeah no problem waiting for v3 for more complete review, I haven't decided if I'm squashing the class stuff in or doing it in separate patches. Once I have it all working in a satisfactory way I'll decide. > Regards, > > Hans > > > > > >> >> Mario Limonciello (15): >> ACPI: platform-profile: Add a name member to handlers >> platform/surface: aggregator: Add platform handler pointer to device >> ACPI: platform_profile: Add platform handler argument to >> platform_profile_remove() >> ACPI: platform_profile: Add a list to platform profile handler >> ACPI: platform_profile: Move sanity check out of the mutex >> ACPI: platform_profile: Use guard(mutex) for register/unregister >> ACPI: platform_profile: Only remove group when no more handler >> registered >> ACPI: platform_profile: Require handlers to support balanced profile >> ACPI: platform_profile: Notify change events on register and >> unregister >> ACPI: platform_profile: Only show profiles common for all handlers >> ACPI: platform_profile: Set profile for all registered handlers >> ACPI: platform_profile: Make sure all profile handlers agree on >> profile >> ACPI: platform_profile: Check all profile handler to calculate next >> ACPI: platform_profile: Allow multiple handlers >> platform/x86/amd: pmf: Drop all quirks >> >> drivers/acpi/platform_profile.c | 258 +++++++++++------- >> .../surface/surface_platform_profile.c | 7 +- >> drivers/platform/x86/acer-wmi.c | 5 +- >> drivers/platform/x86/amd/pmf/Makefile | 2 +- >> drivers/platform/x86/amd/pmf/core.c | 1 - >> drivers/platform/x86/amd/pmf/pmf-quirks.c | 66 ----- >> drivers/platform/x86/amd/pmf/pmf.h | 3 - >> drivers/platform/x86/amd/pmf/sps.c | 3 +- >> drivers/platform/x86/asus-wmi.c | 5 +- >> drivers/platform/x86/dell/dell-pc.c | 3 +- >> drivers/platform/x86/hp/hp-wmi.c | 3 +- >> drivers/platform/x86/ideapad-laptop.c | 3 +- >> .../platform/x86/inspur_platform_profile.c | 5 +- >> drivers/platform/x86/thinkpad_acpi.c | 3 +- >> include/linux/platform_profile.h | 4 +- >> 15 files changed, 190 insertions(+), 181 deletions(-) >> delete mode 100644 drivers/platform/x86/amd/pmf/pmf-quirks.c >> >