mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 23:13:01 +02:00
hwmon: (emc2305) Set initial PWM minimum value during probe based on thermal state
[ Upstream commit 0429415a08
]
Prevent the PWM value from being set to minimum when thermal zone
temperature exceeds any trip point during driver probe. Otherwise, the
PWM fan speed will remains at minimum speed and not respond to
temperature changes.
Signed-off-by: Florin Leotescu <florin.leotescu@nxp.com>
Link: https://lore.kernel.org/r/20250603113125.3175103-5-florin.leotescu@oss.nxp.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
1a8afe5f16
commit
7fcbbd7f82
|
@ -299,6 +299,12 @@ static int emc2305_set_single_tz(struct device *dev, int idx)
|
|||
dev_err(dev, "Failed to register cooling device %s\n", emc2305_fan_name[idx]);
|
||||
return PTR_ERR(data->cdev_data[cdev_idx].cdev);
|
||||
}
|
||||
|
||||
if (data->cdev_data[cdev_idx].cur_state > 0)
|
||||
/* Update pwm when temperature is above trips */
|
||||
pwm = EMC2305_PWM_STATE2DUTY(data->cdev_data[cdev_idx].cur_state,
|
||||
data->max_state, EMC2305_FAN_MAX);
|
||||
|
||||
/* Set minimal PWM speed. */
|
||||
if (data->pwm_separate) {
|
||||
ret = emc2305_set_pwm(dev, pwm, cdev_idx);
|
||||
|
@ -312,10 +318,10 @@ static int emc2305_set_single_tz(struct device *dev, int idx)
|
|||
}
|
||||
}
|
||||
data->cdev_data[cdev_idx].cur_state =
|
||||
EMC2305_PWM_DUTY2STATE(data->pwm_min[cdev_idx], data->max_state,
|
||||
EMC2305_PWM_DUTY2STATE(pwm, data->max_state,
|
||||
EMC2305_FAN_MAX);
|
||||
data->cdev_data[cdev_idx].last_hwmon_state =
|
||||
EMC2305_PWM_DUTY2STATE(data->pwm_min[cdev_idx], data->max_state,
|
||||
EMC2305_PWM_DUTY2STATE(pwm, data->max_state,
|
||||
EMC2305_FAN_MAX);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user