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
>>
>