mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 11:33:28 +02:00
platform/x86: hp-wmi: fix u8 underflow in gpu_delta calculation
gpu_delta was declared as u8. If the firmware specifies a GPU RPM
lower than the CPU RPM, subtracting them causes an underflow
(e.g. 10 - 20 = 246), which forces the GPU fan to remain clamped at
U8_MAX (100% speed) during operation.
Change gpu_delta to int and use signed arithmetic. Existing signed logic
in hp_wmi_fan_speed_set() correctly handles negative deltas.
Fixes: 46be1453e6 ("platform/x86: hp-wmi: add manual fan control for Victus S models")
Suggested-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Emre Cecanpunar <emreleno@gmail.com>
Link: https://patch.msgid.link/20260407142515.20683-5-emreleno@gmail.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
This commit is contained in:
parent
6297443beb
commit
cb4daa450f
|
|
@ -455,7 +455,7 @@ enum pwm_modes {
|
|||
struct hp_wmi_hwmon_priv {
|
||||
u8 min_rpm;
|
||||
u8 max_rpm;
|
||||
u8 gpu_delta;
|
||||
int gpu_delta;
|
||||
u8 mode;
|
||||
u8 pwm;
|
||||
struct delayed_work keep_alive_dwork;
|
||||
|
|
@ -2549,8 +2549,8 @@ static int hp_wmi_setup_fan_settings(struct hp_wmi_hwmon_priv *priv)
|
|||
{
|
||||
u8 fan_data[128] = { 0 };
|
||||
struct victus_s_fan_table *fan_table;
|
||||
u8 min_rpm, max_rpm, gpu_delta;
|
||||
int ret;
|
||||
u8 min_rpm, max_rpm;
|
||||
int gpu_delta, ret;
|
||||
|
||||
/* Default behaviour on hwmon init is automatic mode */
|
||||
priv->mode = PWM_MODE_AUTO;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user