mbox series

[v4,0/9] platform/x86: introduce asus-armoury driver

Message ID 20240926092952.1284435-1-luke@ljones.dev (mailing list archive)
Headers show
Series platform/x86: introduce asus-armoury driver | expand

Message

Luke Jones Sept. 26, 2024, 9:29 a.m. UTC
his is the first major patch I've ever done with the intention of
introducing a new module, so it's highly likely I've made some mistakes
or misunderstood something.

TL;DR:
1. introduce new module to contain bios attributes, using fw_attributes_class
2. deprecate all possible attributes from asus-wmi that were added ad-hoc
3. remove those in the next LTS cycle

The idea for this originates from a conversation with Mario Limonciello
https://lore.kernel.org/platform-driver-x86/371d4109-a3bb-4c3b-802f-4ec27a945c99@amd.com/

It is without a doubt much cleaner to use, easier to discover, and the
API is well defined as opposed to the random clutter of attributes I had
been placing in the platform sysfs.

There is some discussion on-going regarding the way tuning knobs such as
the PPT_* should work with platform_profile. This may result in the creation
of an extra profile type "Custom" to signify that the user has adjusted
things away from the defaults used by profiles such as "balanced" or "quiet".

Regards,
Luke

Changelog:
- v1
  - Initial submission
- v2
  - Too many changes to list, but all concerns raised in previous submission addressed.
  - History: https://lore.kernel.org/platform-driver-x86/20240716051612.64842-1-luke@ljones.dev/
- v3
  - All concerns addressed.
  - History: https://lore.kernel.org/platform-driver-x86/20240806020747.365042-1-luke@ljones.dev/
- v4
  - Use EXPORT_SYMBOL_NS_GPL() for the symbols required in this patch series
  - Add patch for hid-asus due to the use of EXPORT_SYMBOL_NS_GPL()
  - Split the PPT knobs out to a separate patch
  - Split the hd_panel setting out to a new patch
  - Clarify some of APU MEM configuration and convert int to hex
  - Rename deprecated Kconfig option to ASUS_WMI_DEPRECATED_ATTRS
  - Fixup cyclic dependency in Kconfig

Luke D. Jones (9):
  platform/x86: asus-wmi: export symbols used for read/write WMI
  hid-asus: Add MODULE_IMPORT_NS(ASUS_WMI)
  platform/x86: asus-armoury: move existing tunings to asus-armoury
    module
  platform/x86: asus-armoury: add panel_hd_mode attribute
  platform/x86: asus-armoury: add the ppt_* and nv_* tuning knobs
  platform/x86: asus-armoury: add dgpu tgp control
  platform/x86: asus-armoury: add apu-mem control support
  platform/x86: asus-armoury: add core count control
  platform/x86: asus-wmi: deprecate bios features

 .../ABI/testing/sysfs-platform-asus-wmi       |   17 +
 drivers/hid/hid-asus.c                        |    1 +
 drivers/platform/x86/Kconfig                  |   22 +
 drivers/platform/x86/Makefile                 |    1 +
 drivers/platform/x86/asus-armoury.c           | 1051 +++++++++++++++++
 drivers/platform/x86/asus-armoury.h           |  257 ++++
 drivers/platform/x86/asus-wmi.c               |  185 ++-
 include/linux/platform_data/x86/asus-wmi.h    |   19 +
 8 files changed, 1520 insertions(+), 33 deletions(-)
 create mode 100644 drivers/platform/x86/asus-armoury.c
 create mode 100644 drivers/platform/x86/asus-armoury.h

Comments

Mario Limonciello Sept. 26, 2024, 2:50 p.m. UTC | #1
On 9/26/2024 04:29, Luke D. Jones wrote:
> his is the first major patch I've ever done with the intention of

s/his/This/

> introducing a new module, so it's highly likely I've made some mistakes
> or misunderstood something.
> 
> TL;DR:
> 1. introduce new module to contain bios attributes, using fw_attributes_class
> 2. deprecate all possible attributes from asus-wmi that were added ad-hoc
> 3. remove those in the next LTS cycle
> 
> The idea for this originates from a conversation with Mario Limonciello
> https://lore.kernel.org/platform-driver-x86/371d4109-a3bb-4c3b-802f-4ec27a945c99@amd.com/
> 
> It is without a doubt much cleaner to use, easier to discover, and the
> API is well defined as opposed to the random clutter of attributes I had
> been placing in the platform sysfs.
> 
> There is some discussion on-going regarding the way tuning knobs such as
> the PPT_* should work with platform_profile. This may result in the creation
> of an extra profile type "Custom" to signify that the user has adjusted
> things away from the defaults used by profiles such as "balanced" or "quiet".

Yeah this is under discussion on my RFC patch series.  Based on the 
outcome of that we can modify asus-armoury later on for it.

> 
> Regards,
> Luke
> 
> Changelog:
> - v1
>    - Initial submission
> - v2
>    - Too many changes to list, but all concerns raised in previous submission addressed.
>    - History: https://lore.kernel.org/platform-driver-x86/20240716051612.64842-1-luke@ljones.dev/
> - v3
>    - All concerns addressed.
>    - History: https://lore.kernel.org/platform-driver-x86/20240806020747.365042-1-luke@ljones.dev/
> - v4
>    - Use EXPORT_SYMBOL_NS_GPL() for the symbols required in this patch series
>    - Add patch for hid-asus due to the use of EXPORT_SYMBOL_NS_GPL()
>    - Split the PPT knobs out to a separate patch
>    - Split the hd_panel setting out to a new patch
>    - Clarify some of APU MEM configuration and convert int to hex
>    - Rename deprecated Kconfig option to ASUS_WMI_DEPRECATED_ATTRS
>    - Fixup cyclic dependency in Kconfig
> 
> Luke D. Jones (9):
>    platform/x86: asus-wmi: export symbols used for read/write WMI
>    hid-asus: Add MODULE_IMPORT_NS(ASUS_WMI)
>    platform/x86: asus-armoury: move existing tunings to asus-armoury
>      module
>    platform/x86: asus-armoury: add panel_hd_mode attribute
>    platform/x86: asus-armoury: add the ppt_* and nv_* tuning knobs
>    platform/x86: asus-armoury: add dgpu tgp control
>    platform/x86: asus-armoury: add apu-mem control support
>    platform/x86: asus-armoury: add core count control
>    platform/x86: asus-wmi: deprecate bios features
> 
>   .../ABI/testing/sysfs-platform-asus-wmi       |   17 +
>   drivers/hid/hid-asus.c                        |    1 +
>   drivers/platform/x86/Kconfig                  |   22 +
>   drivers/platform/x86/Makefile                 |    1 +
>   drivers/platform/x86/asus-armoury.c           | 1051 +++++++++++++++++
>   drivers/platform/x86/asus-armoury.h           |  257 ++++
>   drivers/platform/x86/asus-wmi.c               |  185 ++-
>   include/linux/platform_data/x86/asus-wmi.h    |   19 +
>   8 files changed, 1520 insertions(+), 33 deletions(-)
>   create mode 100644 drivers/platform/x86/asus-armoury.c
>   create mode 100644 drivers/platform/x86/asus-armoury.h
>
Luke Jones Sept. 26, 2024, 9:44 p.m. UTC | #2
On Fri, 27 Sep 2024, at 2:50 AM, Mario Limonciello wrote:
> On 9/26/2024 04:29, Luke D. Jones wrote:
> > his is the first major patch I've ever done with the intention of
> 
> s/his/This/
> 
> > introducing a new module, so it's highly likely I've made some mistakes
> > or misunderstood something.
> > 
> > TL;DR:
> > 1. introduce new module to contain bios attributes, using fw_attributes_class
> > 2. deprecate all possible attributes from asus-wmi that were added ad-hoc
> > 3. remove those in the next LTS cycle
> > 
> > The idea for this originates from a conversation with Mario Limonciello
> > https://lore.kernel.org/platform-driver-x86/371d4109-a3bb-4c3b-802f-4ec27a945c99@amd.com/
> > 
> > It is without a doubt much cleaner to use, easier to discover, and the
> > API is well defined as opposed to the random clutter of attributes I had
> > been placing in the platform sysfs.
> > 
> > There is some discussion on-going regarding the way tuning knobs such as
> > the PPT_* should work with platform_profile. This may result in the creation
> > of an extra profile type "Custom" to signify that the user has adjusted
> > things away from the defaults used by profiles such as "balanced" or "quiet".
> 
> Yeah this is under discussion on my RFC patch series.  Based on the 
> outcome of that we can modify asus-armoury later on for it.

Perfect

> > 
> > Regards,
> > Luke
> > 
> > Changelog:
> > - v1
> >    - Initial submission
> > - v2
> >    - Too many changes to list, but all concerns raised in previous submission addressed.
> >    - History: https://lore.kernel.org/platform-driver-x86/20240716051612.64842-1-luke@ljones.dev/
> > - v3
> >    - All concerns addressed.
> >    - History: https://lore.kernel.org/platform-driver-x86/20240806020747.365042-1-luke@ljones.dev/
> > - v4
> >    - Use EXPORT_SYMBOL_NS_GPL() for the symbols required in this patch series
> >    - Add patch for hid-asus due to the use of EXPORT_SYMBOL_NS_GPL()
> >    - Split the PPT knobs out to a separate patch
> >    - Split the hd_panel setting out to a new patch
> >    - Clarify some of APU MEM configuration and convert int to hex
> >    - Rename deprecated Kconfig option to ASUS_WMI_DEPRECATED_ATTRS
> >    - Fixup cyclic dependency in Kconfig
> > 
> > Luke D. Jones (9):
> >    platform/x86: asus-wmi: export symbols used for read/write WMI
> >    hid-asus: Add MODULE_IMPORT_NS(ASUS_WMI)
> >    platform/x86: asus-armoury: move existing tunings to asus-armoury
> >      module
> >    platform/x86: asus-armoury: add panel_hd_mode attribute
> >    platform/x86: asus-armoury: add the ppt_* and nv_* tuning knobs
> >    platform/x86: asus-armoury: add dgpu tgp control
> >    platform/x86: asus-armoury: add apu-mem control support
> >    platform/x86: asus-armoury: add core count control
> >    platform/x86: asus-wmi: deprecate bios features
> > 
> >   .../ABI/testing/sysfs-platform-asus-wmi       |   17 +
> >   drivers/hid/hid-asus.c                        |    1 +
> >   drivers/platform/x86/Kconfig                  |   22 +
> >   drivers/platform/x86/Makefile                 |    1 +
> >   drivers/platform/x86/asus-armoury.c           | 1051 +++++++++++++++++
> >   drivers/platform/x86/asus-armoury.h           |  257 ++++
> >   drivers/platform/x86/asus-wmi.c               |  185 ++-
> >   include/linux/platform_data/x86/asus-wmi.h    |   19 +
> >   8 files changed, 1520 insertions(+), 33 deletions(-)
> >   create mode 100644 drivers/platform/x86/asus-armoury.c
> >   create mode 100644 drivers/platform/x86/asus-armoury.h
> > 
> 
>