mbox series

[v11,0/5] Dell AWCC platform_profile support

Message ID 20241030000904.7205-2-kuurtb@gmail.com (mailing list archive)
Headers show
Series Dell AWCC platform_profile support | expand

Message

Kurt Borja Oct. 30, 2024, 12:09 a.m. UTC
This patch adds platform_profile support for Dell devices which implement
WMAX thermal interface, that are meant to be controlled by Alienware Command
Center (AWCC). These devices may include newer Alienware M-Series, Alienware
X-Series and Dell's G-Series.

Tested on an Alienware x15 R1.
---
v11:
 - Minor changes on patch 4/5
v10:
 - `thermal` and `gmode` quirks are now manually selected because some
   models with the WMAX interface don't have the necessary thermal
   methods.
 - Added force_platform_profile and force_gmode patch for a better user
   experience
v9:
 - Minor changes on patch 3/4
v8:
 - Aesthetic and readibility fixes on patch 3/4
 - Better commit message for patch 3/4
v7:
 - Platform profile implementation refactored in order to efficently
   autodetect available thermal profiles
 - Added GameShiftStatus method to documentation
 - Implemented GameShiftStatus switch for devices that support it 
v6:
 - Removed quirk thermal_ustt.
 - Now quirk thermal can take canonical thermal profile _tables_ defined
   in enum WMAX_THERMAL_TABLES
 - Added autodetect_thermal_profile
 - Proper removal of thermal profile
v5:
 - Better commit messages
 - insize renamed to in_size in alienware_wmax_command() to match other
   arguments.
 - Kudos in documentation now at the end of the file
v4:
 - Fixed indentation on previous code
 - Removed unnecessary (acpi_size) and (u32 *) casts
 - Return -EIO on ACPI_FAILURE
 - Appropiate prefixes given to macros
 - 0xFFFFFFFF named WMAX_FAILURE_CODE
 - Added support for a new set of thermal codes. Old ones now have USTT
   in their names
 - A new quirk has been added to differantiate between the two sets.
   thermal and thermal_ustt are mutually exclusive
 - Added documentation for WMAX interface
v3:
 - Removed extra empty line
 - 0x0B named WMAX_ARG_GET_CURRENT_PROF
 - Removed casts to the same type on functions added in this patch
 - Thermal profile to WMAX argument is now an static function and makes
   use of in-built kernel macros
 - Platform profile is now removed only if it was created first
 - create_platform_profile is now create_thermal_profile to avoid
   confusion
 - profile_get and profile_set functions renamed too to match the above
v2:
 - Moved functionality to alienware-wmi driver
 - Added thermal and gmode quirks to add support based on dmi match
 - Performance profile is now GMODE for devices that support it
 - alienware_wmax_command now is insize agnostic to support new thermal
   methods

Kurt Borja (5):
  alienware-wmi: fixed indentation and clean up
  alienware-wmi: alienware_wmax_command() is now input size agnostic
  alienware-wmi: added platform profile support
  alienware-wmi: added force module parameters
  alienware-wmi: WMAX interface documentation

 Documentation/wmi/devices/alienware-wmi.rst | 388 ++++++++++++++++
 MAINTAINERS                                 |   1 +
 drivers/platform/x86/dell/Kconfig           |   1 +
 drivers/platform/x86/dell/alienware-wmi.c   | 477 ++++++++++++++++----
 4 files changed, 791 insertions(+), 76 deletions(-)
 create mode 100644 Documentation/wmi/devices/alienware-wmi.rst

Comments

Ilpo Järvinen Oct. 30, 2024, 12:10 p.m. UTC | #1
On Tue, 29 Oct 2024, Kurt Borja wrote:

> This patch adds platform_profile support for Dell devices which implement
> WMAX thermal interface, that are meant to be controlled by Alienware Command
> Center (AWCC). These devices may include newer Alienware M-Series, Alienware
> X-Series and Dell's G-Series.
> 
> Tested on an Alienware x15 R1.
> ---
> v11:
>  - Minor changes on patch 4/5
> v10:
>  - `thermal` and `gmode` quirks are now manually selected because some
>    models with the WMAX interface don't have the necessary thermal
>    methods.
>  - Added force_platform_profile and force_gmode patch for a better user
>    experience
> v9:
>  - Minor changes on patch 3/4
> v8:
>  - Aesthetic and readibility fixes on patch 3/4
>  - Better commit message for patch 3/4
> v7:
>  - Platform profile implementation refactored in order to efficently
>    autodetect available thermal profiles
>  - Added GameShiftStatus method to documentation
>  - Implemented GameShiftStatus switch for devices that support it 
> v6:
>  - Removed quirk thermal_ustt.
>  - Now quirk thermal can take canonical thermal profile _tables_ defined
>    in enum WMAX_THERMAL_TABLES
>  - Added autodetect_thermal_profile
>  - Proper removal of thermal profile
> v5:
>  - Better commit messages
>  - insize renamed to in_size in alienware_wmax_command() to match other
>    arguments.
>  - Kudos in documentation now at the end of the file
> v4:
>  - Fixed indentation on previous code
>  - Removed unnecessary (acpi_size) and (u32 *) casts
>  - Return -EIO on ACPI_FAILURE
>  - Appropiate prefixes given to macros
>  - 0xFFFFFFFF named WMAX_FAILURE_CODE
>  - Added support for a new set of thermal codes. Old ones now have USTT
>    in their names
>  - A new quirk has been added to differantiate between the two sets.
>    thermal and thermal_ustt are mutually exclusive
>  - Added documentation for WMAX interface
> v3:
>  - Removed extra empty line
>  - 0x0B named WMAX_ARG_GET_CURRENT_PROF
>  - Removed casts to the same type on functions added in this patch
>  - Thermal profile to WMAX argument is now an static function and makes
>    use of in-built kernel macros
>  - Platform profile is now removed only if it was created first
>  - create_platform_profile is now create_thermal_profile to avoid
>    confusion
>  - profile_get and profile_set functions renamed too to match the above
> v2:
>  - Moved functionality to alienware-wmi driver
>  - Added thermal and gmode quirks to add support based on dmi match
>  - Performance profile is now GMODE for devices that support it
>  - alienware_wmax_command now is insize agnostic to support new thermal
>    methods
> 
> Kurt Borja (5):
>   alienware-wmi: fixed indentation and clean up
>   alienware-wmi: alienware_wmax_command() is now input size agnostic
>   alienware-wmi: added platform profile support
>   alienware-wmi: added force module parameters
>   alienware-wmi: WMAX interface documentation
> 
>  Documentation/wmi/devices/alienware-wmi.rst | 388 ++++++++++++++++
>  MAINTAINERS                                 |   1 +
>  drivers/platform/x86/dell/Kconfig           |   1 +
>  drivers/platform/x86/dell/alienware-wmi.c   | 477 ++++++++++++++++----
>  4 files changed, 791 insertions(+), 76 deletions(-)
>  create mode 100644 Documentation/wmi/devices/alienware-wmi.rst

Huge thanks to you both Kurt and Armin for all the work done to improve 
this series! :-)

I've applied this series to the review-ilpo branch now.
Kurt Borja Oct. 30, 2024, 2:41 p.m. UTC | #2
On Wed, Oct 30, 2024 at 02:10:24PM +0200, Ilpo Järvinen wrote:
> On Tue, 29 Oct 2024, Kurt Borja wrote:
> 
> > This patch adds platform_profile support for Dell devices which implement
> > WMAX thermal interface, that are meant to be controlled by Alienware Command
> > Center (AWCC). These devices may include newer Alienware M-Series, Alienware
> > X-Series and Dell's G-Series.
> > 
> > Tested on an Alienware x15 R1.
> > ---
> > v11:
> >  - Minor changes on patch 4/5
> > v10:
> >  - `thermal` and `gmode` quirks are now manually selected because some
> >    models with the WMAX interface don't have the necessary thermal
> >    methods.
> >  - Added force_platform_profile and force_gmode patch for a better user
> >    experience
> > v9:
> >  - Minor changes on patch 3/4
> > v8:
> >  - Aesthetic and readibility fixes on patch 3/4
> >  - Better commit message for patch 3/4
> > v7:
> >  - Platform profile implementation refactored in order to efficently
> >    autodetect available thermal profiles
> >  - Added GameShiftStatus method to documentation
> >  - Implemented GameShiftStatus switch for devices that support it 
> > v6:
> >  - Removed quirk thermal_ustt.
> >  - Now quirk thermal can take canonical thermal profile _tables_ defined
> >    in enum WMAX_THERMAL_TABLES
> >  - Added autodetect_thermal_profile
> >  - Proper removal of thermal profile
> > v5:
> >  - Better commit messages
> >  - insize renamed to in_size in alienware_wmax_command() to match other
> >    arguments.
> >  - Kudos in documentation now at the end of the file
> > v4:
> >  - Fixed indentation on previous code
> >  - Removed unnecessary (acpi_size) and (u32 *) casts
> >  - Return -EIO on ACPI_FAILURE
> >  - Appropiate prefixes given to macros
> >  - 0xFFFFFFFF named WMAX_FAILURE_CODE
> >  - Added support for a new set of thermal codes. Old ones now have USTT
> >    in their names
> >  - A new quirk has been added to differantiate between the two sets.
> >    thermal and thermal_ustt are mutually exclusive
> >  - Added documentation for WMAX interface
> > v3:
> >  - Removed extra empty line
> >  - 0x0B named WMAX_ARG_GET_CURRENT_PROF
> >  - Removed casts to the same type on functions added in this patch
> >  - Thermal profile to WMAX argument is now an static function and makes
> >    use of in-built kernel macros
> >  - Platform profile is now removed only if it was created first
> >  - create_platform_profile is now create_thermal_profile to avoid
> >    confusion
> >  - profile_get and profile_set functions renamed too to match the above
> > v2:
> >  - Moved functionality to alienware-wmi driver
> >  - Added thermal and gmode quirks to add support based on dmi match
> >  - Performance profile is now GMODE for devices that support it
> >  - alienware_wmax_command now is insize agnostic to support new thermal
> >    methods
> > 
> > Kurt Borja (5):
> >   alienware-wmi: fixed indentation and clean up
> >   alienware-wmi: alienware_wmax_command() is now input size agnostic
> >   alienware-wmi: added platform profile support
> >   alienware-wmi: added force module parameters
> >   alienware-wmi: WMAX interface documentation
> > 
> >  Documentation/wmi/devices/alienware-wmi.rst | 388 ++++++++++++++++
> >  MAINTAINERS                                 |   1 +
> >  drivers/platform/x86/dell/Kconfig           |   1 +
> >  drivers/platform/x86/dell/alienware-wmi.c   | 477 ++++++++++++++++----
> >  4 files changed, 791 insertions(+), 76 deletions(-)
> >  create mode 100644 Documentation/wmi/devices/alienware-wmi.rst
> 
> Huge thanks to you both Kurt and Armin for all the work done to improve 
> this series! :-)
> 
> I've applied this series to the review-ilpo branch now.
> 
> -- 
>  i.

Huge thanks to you both :). I learnt a lot.

Regards,
Kurt

>
Armin Wolf Oct. 30, 2024, 7:54 p.m. UTC | #3
Am 30.10.24 um 13:10 schrieb Ilpo Järvinen:

> On Tue, 29 Oct 2024, Kurt Borja wrote:
>
>> This patch adds platform_profile support for Dell devices which implement
>> WMAX thermal interface, that are meant to be controlled by Alienware Command
>> Center (AWCC). These devices may include newer Alienware M-Series, Alienware
>> X-Series and Dell's G-Series.
>>
>> Tested on an Alienware x15 R1.
>> ---
>> v11:
>>   - Minor changes on patch 4/5
>> v10:
>>   - `thermal` and `gmode` quirks are now manually selected because some
>>     models with the WMAX interface don't have the necessary thermal
>>     methods.
>>   - Added force_platform_profile and force_gmode patch for a better user
>>     experience
>> v9:
>>   - Minor changes on patch 3/4
>> v8:
>>   - Aesthetic and readibility fixes on patch 3/4
>>   - Better commit message for patch 3/4
>> v7:
>>   - Platform profile implementation refactored in order to efficently
>>     autodetect available thermal profiles
>>   - Added GameShiftStatus method to documentation
>>   - Implemented GameShiftStatus switch for devices that support it
>> v6:
>>   - Removed quirk thermal_ustt.
>>   - Now quirk thermal can take canonical thermal profile _tables_ defined
>>     in enum WMAX_THERMAL_TABLES
>>   - Added autodetect_thermal_profile
>>   - Proper removal of thermal profile
>> v5:
>>   - Better commit messages
>>   - insize renamed to in_size in alienware_wmax_command() to match other
>>     arguments.
>>   - Kudos in documentation now at the end of the file
>> v4:
>>   - Fixed indentation on previous code
>>   - Removed unnecessary (acpi_size) and (u32 *) casts
>>   - Return -EIO on ACPI_FAILURE
>>   - Appropiate prefixes given to macros
>>   - 0xFFFFFFFF named WMAX_FAILURE_CODE
>>   - Added support for a new set of thermal codes. Old ones now have USTT
>>     in their names
>>   - A new quirk has been added to differantiate between the two sets.
>>     thermal and thermal_ustt are mutually exclusive
>>   - Added documentation for WMAX interface
>> v3:
>>   - Removed extra empty line
>>   - 0x0B named WMAX_ARG_GET_CURRENT_PROF
>>   - Removed casts to the same type on functions added in this patch
>>   - Thermal profile to WMAX argument is now an static function and makes
>>     use of in-built kernel macros
>>   - Platform profile is now removed only if it was created first
>>   - create_platform_profile is now create_thermal_profile to avoid
>>     confusion
>>   - profile_get and profile_set functions renamed too to match the above
>> v2:
>>   - Moved functionality to alienware-wmi driver
>>   - Added thermal and gmode quirks to add support based on dmi match
>>   - Performance profile is now GMODE for devices that support it
>>   - alienware_wmax_command now is insize agnostic to support new thermal
>>     methods
>>
>> Kurt Borja (5):
>>    alienware-wmi: fixed indentation and clean up
>>    alienware-wmi: alienware_wmax_command() is now input size agnostic
>>    alienware-wmi: added platform profile support
>>    alienware-wmi: added force module parameters
>>    alienware-wmi: WMAX interface documentation
>>
>>   Documentation/wmi/devices/alienware-wmi.rst | 388 ++++++++++++++++
>>   MAINTAINERS                                 |   1 +
>>   drivers/platform/x86/dell/Kconfig           |   1 +
>>   drivers/platform/x86/dell/alienware-wmi.c   | 477 ++++++++++++++++----
>>   4 files changed, 791 insertions(+), 76 deletions(-)
>>   create mode 100644 Documentation/wmi/devices/alienware-wmi.rst
> Huge thanks to you both Kurt and Armin for all the work done to improve
> this series! :-)
>
> I've applied this series to the review-ilpo branch now.

Nice.

Would it be possible to apply a small fixup to patch 4?
Because pr_warn("force_gmode requieres platform profile support") seems to be missing a newline.

Thanks,
Armin Wolf
Kurt Borja Oct. 30, 2024, 11:56 p.m. UTC | #4
On Wed, Oct 30, 2024 at 08:54:37PM +0100, Armin Wolf wrote:
> Am 30.10.24 um 13:10 schrieb Ilpo Järvinen:
> 
> > On Tue, 29 Oct 2024, Kurt Borja wrote:
> > 
> > > This patch adds platform_profile support for Dell devices which implement
> > > WMAX thermal interface, that are meant to be controlled by Alienware Command
> > > Center (AWCC). These devices may include newer Alienware M-Series, Alienware
> > > X-Series and Dell's G-Series.
> > > 
> > > Tested on an Alienware x15 R1.
> > > ---
> > > v11:
> > >   - Minor changes on patch 4/5
> > > v10:
> > >   - `thermal` and `gmode` quirks are now manually selected because some
> > >     models with the WMAX interface don't have the necessary thermal
> > >     methods.
> > >   - Added force_platform_profile and force_gmode patch for a better user
> > >     experience
> > > v9:
> > >   - Minor changes on patch 3/4
> > > v8:
> > >   - Aesthetic and readibility fixes on patch 3/4
> > >   - Better commit message for patch 3/4
> > > v7:
> > >   - Platform profile implementation refactored in order to efficently
> > >     autodetect available thermal profiles
> > >   - Added GameShiftStatus method to documentation
> > >   - Implemented GameShiftStatus switch for devices that support it
> > > v6:
> > >   - Removed quirk thermal_ustt.
> > >   - Now quirk thermal can take canonical thermal profile _tables_ defined
> > >     in enum WMAX_THERMAL_TABLES
> > >   - Added autodetect_thermal_profile
> > >   - Proper removal of thermal profile
> > > v5:
> > >   - Better commit messages
> > >   - insize renamed to in_size in alienware_wmax_command() to match other
> > >     arguments.
> > >   - Kudos in documentation now at the end of the file
> > > v4:
> > >   - Fixed indentation on previous code
> > >   - Removed unnecessary (acpi_size) and (u32 *) casts
> > >   - Return -EIO on ACPI_FAILURE
> > >   - Appropiate prefixes given to macros
> > >   - 0xFFFFFFFF named WMAX_FAILURE_CODE
> > >   - Added support for a new set of thermal codes. Old ones now have USTT
> > >     in their names
> > >   - A new quirk has been added to differantiate between the two sets.
> > >     thermal and thermal_ustt are mutually exclusive
> > >   - Added documentation for WMAX interface
> > > v3:
> > >   - Removed extra empty line
> > >   - 0x0B named WMAX_ARG_GET_CURRENT_PROF
> > >   - Removed casts to the same type on functions added in this patch
> > >   - Thermal profile to WMAX argument is now an static function and makes
> > >     use of in-built kernel macros
> > >   - Platform profile is now removed only if it was created first
> > >   - create_platform_profile is now create_thermal_profile to avoid
> > >     confusion
> > >   - profile_get and profile_set functions renamed too to match the above
> > > v2:
> > >   - Moved functionality to alienware-wmi driver
> > >   - Added thermal and gmode quirks to add support based on dmi match
> > >   - Performance profile is now GMODE for devices that support it
> > >   - alienware_wmax_command now is insize agnostic to support new thermal
> > >     methods
> > > 
> > > Kurt Borja (5):
> > >    alienware-wmi: fixed indentation and clean up
> > >    alienware-wmi: alienware_wmax_command() is now input size agnostic
> > >    alienware-wmi: added platform profile support
> > >    alienware-wmi: added force module parameters
> > >    alienware-wmi: WMAX interface documentation
> > > 
> > >   Documentation/wmi/devices/alienware-wmi.rst | 388 ++++++++++++++++
> > >   MAINTAINERS                                 |   1 +
> > >   drivers/platform/x86/dell/Kconfig           |   1 +
> > >   drivers/platform/x86/dell/alienware-wmi.c   | 477 ++++++++++++++++----
> > >   4 files changed, 791 insertions(+), 76 deletions(-)
> > >   create mode 100644 Documentation/wmi/devices/alienware-wmi.rst
> > Huge thanks to you both Kurt and Armin for all the work done to improve
> > this series! :-)
> > 
> > I've applied this series to the review-ilpo branch now.
> 
> Nice.
> 
> Would it be possible to apply a small fixup to patch 4?
> Because pr_warn("force_gmode requieres platform profile support") seems to be missing a newline.

Should I send a new patch with that fixup or v12? 

Kurt.

> 
> Thanks,
> Armin Wolf
>
Ilpo Järvinen Oct. 31, 2024, 9:34 a.m. UTC | #5
On Wed, 30 Oct 2024, Kurt Borja wrote:

> On Wed, Oct 30, 2024 at 08:54:37PM +0100, Armin Wolf wrote:
> > Am 30.10.24 um 13:10 schrieb Ilpo Järvinen:
> > 
> > > On Tue, 29 Oct 2024, Kurt Borja wrote:
> > > 
> > > > This patch adds platform_profile support for Dell devices which implement
> > > > WMAX thermal interface, that are meant to be controlled by Alienware Command
> > > > Center (AWCC). These devices may include newer Alienware M-Series, Alienware
> > > > X-Series and Dell's G-Series.
> > > > 
> > > > Tested on an Alienware x15 R1.
> > > > ---
> > > > v11:
> > > >   - Minor changes on patch 4/5
> > > > v10:
> > > >   - `thermal` and `gmode` quirks are now manually selected because some
> > > >     models with the WMAX interface don't have the necessary thermal
> > > >     methods.
> > > >   - Added force_platform_profile and force_gmode patch for a better user
> > > >     experience
> > > > v9:
> > > >   - Minor changes on patch 3/4
> > > > v8:
> > > >   - Aesthetic and readibility fixes on patch 3/4
> > > >   - Better commit message for patch 3/4
> > > > v7:
> > > >   - Platform profile implementation refactored in order to efficently
> > > >     autodetect available thermal profiles
> > > >   - Added GameShiftStatus method to documentation
> > > >   - Implemented GameShiftStatus switch for devices that support it
> > > > v6:
> > > >   - Removed quirk thermal_ustt.
> > > >   - Now quirk thermal can take canonical thermal profile _tables_ defined
> > > >     in enum WMAX_THERMAL_TABLES
> > > >   - Added autodetect_thermal_profile
> > > >   - Proper removal of thermal profile
> > > > v5:
> > > >   - Better commit messages
> > > >   - insize renamed to in_size in alienware_wmax_command() to match other
> > > >     arguments.
> > > >   - Kudos in documentation now at the end of the file
> > > > v4:
> > > >   - Fixed indentation on previous code
> > > >   - Removed unnecessary (acpi_size) and (u32 *) casts
> > > >   - Return -EIO on ACPI_FAILURE
> > > >   - Appropiate prefixes given to macros
> > > >   - 0xFFFFFFFF named WMAX_FAILURE_CODE
> > > >   - Added support for a new set of thermal codes. Old ones now have USTT
> > > >     in their names
> > > >   - A new quirk has been added to differantiate between the two sets.
> > > >     thermal and thermal_ustt are mutually exclusive
> > > >   - Added documentation for WMAX interface
> > > > v3:
> > > >   - Removed extra empty line
> > > >   - 0x0B named WMAX_ARG_GET_CURRENT_PROF
> > > >   - Removed casts to the same type on functions added in this patch
> > > >   - Thermal profile to WMAX argument is now an static function and makes
> > > >     use of in-built kernel macros
> > > >   - Platform profile is now removed only if it was created first
> > > >   - create_platform_profile is now create_thermal_profile to avoid
> > > >     confusion
> > > >   - profile_get and profile_set functions renamed too to match the above
> > > > v2:
> > > >   - Moved functionality to alienware-wmi driver
> > > >   - Added thermal and gmode quirks to add support based on dmi match
> > > >   - Performance profile is now GMODE for devices that support it
> > > >   - alienware_wmax_command now is insize agnostic to support new thermal
> > > >     methods
> > > > 
> > > > Kurt Borja (5):
> > > >    alienware-wmi: fixed indentation and clean up
> > > >    alienware-wmi: alienware_wmax_command() is now input size agnostic
> > > >    alienware-wmi: added platform profile support
> > > >    alienware-wmi: added force module parameters
> > > >    alienware-wmi: WMAX interface documentation
> > > > 
> > > >   Documentation/wmi/devices/alienware-wmi.rst | 388 ++++++++++++++++
> > > >   MAINTAINERS                                 |   1 +
> > > >   drivers/platform/x86/dell/Kconfig           |   1 +
> > > >   drivers/platform/x86/dell/alienware-wmi.c   | 477 ++++++++++++++++----
> > > >   4 files changed, 791 insertions(+), 76 deletions(-)
> > > >   create mode 100644 Documentation/wmi/devices/alienware-wmi.rst
> > > Huge thanks to you both Kurt and Armin for all the work done to improve
> > > this series! :-)
> > > 
> > > I've applied this series to the review-ilpo branch now.
> > 
> > Nice.
> > 
> > Would it be possible to apply a small fixup to patch 4?
> > Because pr_warn("force_gmode requieres platform profile support") seems to be missing a newline.
> 
> Should I send a new patch with that fixup or v12? 
> 
> Kurt.

Neither. I took care of this for you inside review-ilpo branch. :-)