From d1f60971fbf85c243ab6c78f6535fbc88fa640ce Mon Sep 17 00:00:00 2001 From: Alexei Solcanu Date: Sat, 26 Sep 2026 16:11:20 -0400 Subject: [PATCH] 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 Reviewed-by: Antheas Kapenekakis 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 --- drivers/hwmon/gpd-fan.c | 1 + 1 file changed, 1 insertion(+) 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; } }