Commit 3600ad5e authored by Martin Peres's avatar Martin Peres Committed by Ben Skeggs

drm/nouveau/therm: force a minimum hysteresis on temperature alarm thresholds

This should avoid the situation where a user gets its kernel logs flooded when
temperature oscillates around a threshold with 0°C hysteresis.

This patch is just meant to fix broken vbios (as reported on a nv4e on
sysfs hwmon interface.
Signed-off-by: default avatarMartin Peres <martin.peres@labri.fr>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent f1aa4a1d
...@@ -58,11 +58,18 @@ static void ...@@ -58,11 +58,18 @@ static void
nouveau_therm_temp_safety_checks(struct nouveau_therm *therm) nouveau_therm_temp_safety_checks(struct nouveau_therm *therm)
{ {
struct nouveau_therm_priv *priv = (void *)therm; struct nouveau_therm_priv *priv = (void *)therm;
struct nvbios_therm_sensor *s = &priv->bios_sensor;
if (!priv->bios_sensor.slope_div) if (!priv->bios_sensor.slope_div)
priv->bios_sensor.slope_div = 1; priv->bios_sensor.slope_div = 1;
if (!priv->bios_sensor.offset_den) if (!priv->bios_sensor.offset_den)
priv->bios_sensor.offset_den = 1; priv->bios_sensor.offset_den = 1;
/* enforce a minimum hysteresis on thresholds */
s->thrs_fan_boost.hysteresis = max_t(u8, s->thrs_fan_boost.hysteresis, 2);
s->thrs_down_clock.hysteresis = max_t(u8, s->thrs_down_clock.hysteresis, 2);
s->thrs_critical.hysteresis = max_t(u8, s->thrs_critical.hysteresis, 2);
s->thrs_shutdown.hysteresis = max_t(u8, s->thrs_shutdown.hysteresis, 2);
} }
/* must be called with alarm_program_lock taken ! */ /* must be called with alarm_program_lock taken ! */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment