summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexei Solcanu <alexei.solcanu@pm.me>2026-09-26 16:11:20 -0400
committerGuenter Roeck <linux@roeck-us.net>2026-11-02 07:00:04 -0800
commitd1f60971fbf85c243ab6c78f6535fbc88fa640ce (patch)
treec4055801dd7e28457c9e4ed94ce874b20e3f2464
parent743b4481b6112d8ac11c165628daa8e0f0ecf78c (diff)
hwmon: (gpd-fan) Reset both fans to automatic on duo boards
On boards using gpd_duo_drvdata (GPD Duo, GPD Win 5), writing pwm1_enable=2 only returns the first fan to EC control. The second fan keeps its last manual duty cycle, e.g. full speed after pwm1=255, so a fan control tool that exits leaves it running at that speed. gpd_duo_write_pwm() writes both fan registers (pwm_write and pwm_write + 1), but switching to automatic only clears pwm_write. Also clear pwm_write + 1, so both fans return to EC control. Tested on a GPD Win 5 (G1618-05). Not tested on the GPD Duo. Fixes: 0ab88e239439 ("hwmon: add GPD devices sensor driver") Cc: stable@vger.kernel.org Signed-off-by: Alexei Solcanu <alexei.solcanu@pm.me> Reviewed-by: Antheas Kapenekakis <lkml@antheas.dev> Link: https://patch.msgid.link/20260926-gpd-fan-duo-auto-v2-1-0a2ea41ee3b5@pm.me [groeck: Dropped obsolete 'Assisted-by: tag] Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-rw-r--r--drivers/hwmon/gpd-fan.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/hwmon/gpd-fan.c b/drivers/hwmon/gpd-fan.c
index ed212615b2fe..b3b75f99f588 100644
--- a/drivers/hwmon/gpd-fan.c
+++ b/drivers/hwmon/gpd-fan.c
@@ -444,6 +444,7 @@ static void gpd_duo_set_pwm_enable(struct gpd_fan_data *data, enum FAN_PWM_ENABL
break;
case AUTOMATIC:
gpd_ecram_write(data->drvdata, data->drvdata->pwm_write, 0);
+ gpd_ecram_write(data->drvdata, data->drvdata->pwm_write + 1, 0);
break;
}
}