| From: |
| Krishna Chomal <krishna.chomal108-AT-gmail.com> |
| To: |
| ilpo.jarvinen-AT-linux.intel.com, hansg-AT-kernel.org, linux-AT-roeck-us.net |
| Subject: |
| [PATCH v3 0/3] platform/x86: hp-wmi: Add manual fan support for Victus S laptops |
| Date: |
| Tue, 13 Jan 2026 18:07:35 +0530 |
| Message-ID: |
| <20260113123738.222244-1-krishna.chomal108@gmail.com> |
| Cc: |
| platform-driver-x86-AT-vger.kernel.org, linux-hwmon-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, Krishna Chomal <krishna.chomal108-AT-gmail.com> |
| Archive-link: |
| Article |
This series adds support for manual fan speed control and PWM reporting
for HP Victus S-style laptops.
The first patch is a trivial fix for ordering the include headers.
The second patch refactors the hwmon implementation to use a per-device
private context for state tracking. It implements RPM-to-PWM conversion
using linear interpolation based on the laptop's internal fan tables
retrieved via WMI. It also introduces PWM_MODE_MANUAL, allowing users
to set specific fan speeds.
The third patch addresses a firmware-specific behavior where the
system reverts to "Auto" fan mode after a 120-second timeout if no WMI
fan commands are received. A delayed workqueue is implemented to act
as a keep-alive heartbeat, refreshing the fan state every 90 seconds
to ensure user-selected profiles remain active indefinitely.
Changes in v3:
- Added a new patch (1/3) to sort include headers alphabetically.
- Fixed alignment of multi-line function arguments.
- Refactored GPU fan speed calculation to use signed integers.
- Removed intermediate "ret" variables in hwmon read/write functions.
- Capitalized "PWM" in comments for consistency.
- Renamed "ctx" to "priv" for drvdata throughout the series.
Changes in v2:
- Refactored hp_wmi_apply_fan_settings() to use a "ret" variable and use
a common path to set fan settings and prepare for keep-alive logic.
- Replaced raw buffer casting with proper fan table structs.
- Converted RPM/PWM macros to static inline functions.
- Renamed internal context variable from "ctx" to "priv" for consistency.
- Renamed delay macro to KEEP_ALIVE_DELAY_SECS.
- Added missing headers and removed redundant NULL checks.
Krishna Chomal (3):
platform/x86: hp-wmi: order include headers
platform/x86: hp-wmi: add manual fan control for Victus S models
platform/x86: hp-wmi: implement fan keep-alive
drivers/platform/x86/hp/hp-wmi.c | 321 +++++++++++++++++++++++++------
1 file changed, 266 insertions(+), 55 deletions(-)
--
2.52.0