|
|
Subscribe / Log in / New account

platform/x86: msi-wmi-platform: Add fan curves/platform profile/tdp/battery limiting

From:  Antheas Kapenekakis <lkml-AT-antheas.dev>
To:  platform-driver-x86-AT-vger.kernel.org
Subject:  [PATCH v1 00/10] platform/x86: msi-wmi-platform: Add fan curves/platform profile/tdp/battery limiting
Date:  Sun, 11 May 2025 22:44:17 +0200
Message-ID:  <20250511204427.327558-1-lkml@antheas.dev>
Cc:  Armin Wolf <W_Armin-AT-gmx.de>, Jonathan Corbet <corbet-AT-lwn.net>, Hans de Goede <hdegoede-AT-redhat.com>, Ilpo Järvinen <ilpo.jarvinen-AT-linux.intel.com>, Jean Delvare <jdelvare-AT-suse.com>, Guenter Roeck <linux-AT-roeck-us.net>, Kurt Borja <kuurtb-AT-gmail.com>, linux-doc-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, linux-hwmon-AT-vger.kernel.org, Antheas Kapenekakis <lkml-AT-antheas.dev>
Archive-link:  Article

This draft patch series brings into parity the msi-wmi-platform driver with
the MSI Center M Windows application for the MSI Claw (all models).
Unfortunately, MSI Center M and this interface do not have a discovery API,
necessitating the introduction of a quirk system.

While this patch series is fully functional and tested, there are still
some issues that need to be addressed:
  - Armin notes we need to disable fan curve support by default and quirk
    it as well, as it is not supported on all models. However, the way
    PWM enable ops work, this makes it a bit difficult, so I would like
    some suggestions on how to rework this.
  - It turns out that to fully disable the fan curve, we have to restore
    the default fan values. This is also what is done on the OEM software.
    For this, the last patch in the series is used, which is a bit dirty.

Sleep was tested with all values being preserved during S0iX (platform
profile, fan curve, PL1/PL2), so we do not need suspend/resume hooks, at
least for the Claw devices.

For PL1/PL2, we use firmware-attributes. So for that I +cc Kurt since if
his new high level interface is merged beforehand, we can use that instead.

Antheas Kapenekakis (8):
  platform/x86: msi-wmi-platform: Add unlocked msi_wmi_platform_query
  platform/x86: msi-wmi-platform: Add quirk system
  platform/x86: msi-wmi-platform: Add platform profile through shift
    mode
  platform/x86: msi-wmi-platform: Add PL1/PL2 support via firmware
    attributes
  platform/x86: msi-wmi-platform: Add charge_threshold support
  platform/x86: msi-wmi-platform: Drop excess fans in dual fan devices
  platform/x86: msi-wmi-platform: Update header text
  platform/x86: msi-wmi-platform: Restore fan curves on PWM disable and
    unload

Armin Wolf (2):
  platform/x86: msi-wmi-platform: Use input buffer for returning result
  platform/x86: msi-wmi-platform: Add support for fan control

 .../wmi/devices/msi-wmi-platform.rst          |   26 +
 drivers/platform/x86/Kconfig                  |    3 +
 drivers/platform/x86/msi-wmi-platform.c       | 1181 ++++++++++++++++-
 3 files changed, 1156 insertions(+), 54 deletions(-)


base-commit: 62b1dcf2e7af3dc2879d1a39bf6823c99486a8c2
-- 
2.49.0




Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds