From: Luke Jones <luke@ljones.dev>
To: linux-kernel@vger.kernel.org
Cc: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com,
platform-driver-x86@vger.kernel.org, mario.limonciello@amd.com,
Luke Jones <luke@ljones.dev>
Subject: [PATCH v7 0/8] platform/x86: Add asus-armoury driver
Date: Mon, 17 Mar 2025 12:07:16 +1300 [thread overview]
Message-ID: <20250316230724.100165-1-luke@ljones.dev> (raw)
Hi all,
the 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. Given that Derek is also working on a
similar approach to Lenovo in part based on my initial work I'd like to think
that the overall approach is good and may become standardised for these types
of things.
Regarding PPT: it is intended to add support for "custom" platform profile
soon. If it's a blocker for this patch series being accepted I will drop the
platform-x86-asus-armoury-add-ppt_-and-nv_-tuning.patch and get that done
separately to avoid holding the bulk of the series up. Ideally I would like
to get the safe limits in so users don't fully lose functionality or continue
to be exposed to potential instability from setting too low, or be mislead
in to thinking they can set limits higher than actual limit.
The bulk of the PPT patch is data, the actual functional part is relatively
small and similar to the last version.
Unfortunately I've been rather busy over the months and may not cover
everything in the v7 changelog but I've tried to be as comprehensive as I can
and I've done my level best to self-review.
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
- v5
- deprecate patch: cleanup ``#if`, ``#endif` statements, edit kconfig detail, edit commit msg
- cleanup ppt* tuning patch
- proper error handling in module init, plus pr_err()
- ppt tunables have a notice if there is no match to get defaults
- better error handling in cpu core handling
- don't continue if failure
- use the mutex to gate WMI writes
- V6
- correctly cleanup/unwind if module init fails
- V7
- Remove review tags where the code changed significantly
- Add auto_screen_brightness WMI attribute support
- Move PPT patch to end
- Add support min/max PPT values for 36 laptops (and two handhelds)
- reword commit for "asus-wmi: export symbols used for read/write WMI"
- asus-armoury: move existing tunings to asus-armoury
- Correction to license header
- Remove the (initial) mutex use (added for core count only in that patch)
- Clarify some doc comments (attr_int_store)
- Cleanup pr_warn in dgpu/egpu/mux functions
- Restructure logic in asus_fw_attr_add()
- Check gpu_mux_dev_id and mini_led_dev_id before remove attrs
- asus-armoury: add core count control:
- add mutex to prevent possible concurrent write to the core
count WMI due to separated bit/little attributes
- asus-armoury: add ppt_* and nv_* tuning knobs:
- Move to end of series
- Refactor to use a table of allowed min/max values to
ensure safe settings
- General code cleanup
- Ensure checkpatch.pl returns clean for all
Luke D. Jones (7):
platform/x86: asus-wmi: export symbols used for read/write 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 apu-mem control support
platform/x86: asus-armoury: add core count control
platform/x86: asus-wmi: deprecate bios features
platform/x86: asus-armoury: add ppt_* and nv_* tuning knobs
Luke Jones (1):
platform/x86: asus-armoury: add screen auto-brightness toggle
.../ABI/testing/sysfs-platform-asus-wmi | 17 +
drivers/platform/x86/Kconfig | 23 +
drivers/platform/x86/Makefile | 1 +
drivers/platform/x86/asus-armoury.c | 1125 +++++++++++++++
drivers/platform/x86/asus-armoury.h | 1278 +++++++++++++++++
drivers/platform/x86/asus-wmi.c | 170 ++-
include/linux/platform_data/x86/asus-wmi.h | 24 +
7 files changed, 2606 insertions(+), 32 deletions(-)
create mode 100644 drivers/platform/x86/asus-armoury.c
create mode 100644 drivers/platform/x86/asus-armoury.h
--
2.48.1
next reply other threads:[~2025-03-16 23:07 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-16 23:07 Luke Jones [this message]
2025-03-16 23:07 ` [PATCH v7 1/8] platform/x86: asus-wmi: export symbols used for read/write WMI Luke Jones
2025-03-16 23:07 ` [PATCH v7 2/8] platform/x86: asus-armoury: move existing tunings to asus-armoury module Luke Jones
2025-03-18 3:47 ` Mario Limonciello
2025-03-18 23:10 ` Luke Jones
2025-03-16 23:07 ` [PATCH v7 3/8] platform/x86: asus-armoury: add panel_hd_mode attribute Luke Jones
2025-03-16 23:07 ` [PATCH v7 4/8] platform/x86: asus-armoury: add apu-mem control support Luke Jones
2025-03-16 23:07 ` [PATCH v7 5/8] platform/x86: asus-armoury: add core count control Luke Jones
2025-03-16 23:07 ` [PATCH v7 6/8] platform/x86: asus-armoury: add screen auto-brightness toggle Luke Jones
2025-03-18 3:30 ` Mario Limonciello
2025-03-16 23:07 ` [PATCH v7 7/8] platform/x86: asus-wmi: deprecate bios features Luke Jones
2025-03-16 23:07 ` [PATCH v7 8/8] platform/x86: asus-armoury: add ppt_* and nv_* tuning knobs Luke Jones
2025-03-18 3:42 ` Mario Limonciello
2025-03-19 0:30 ` Luke Jones
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=20250316230724.100165-1-luke@ljones.dev \
--to=luke@ljones.dev \
--cc=hdegoede@redhat.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mario.limonciello@amd.com \
--cc=platform-driver-x86@vger.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
all inboxes | Powered by JetHome®