Commit e4311ee5 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/therm: remove ineffective workarounds for alarm bugs

These were ineffective due to touching the list without the alarm lock,
but should no longer be required.
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
Cc: stable@vger.kernel.org
parent 330bdf62
...@@ -146,7 +146,7 @@ nvkm_therm_update(struct nvkm_therm *therm, int mode) ...@@ -146,7 +146,7 @@ nvkm_therm_update(struct nvkm_therm *therm, int mode)
poll = false; poll = false;
} }
if (list_empty(&therm->alarm.head) && poll) if (poll)
nvkm_timer_alarm(tmr, 1000000000ULL, &therm->alarm); nvkm_timer_alarm(tmr, 1000000000ULL, &therm->alarm);
spin_unlock_irqrestore(&therm->lock, flags); spin_unlock_irqrestore(&therm->lock, flags);
......
...@@ -83,7 +83,7 @@ nvkm_fan_update(struct nvkm_fan *fan, bool immediate, int target) ...@@ -83,7 +83,7 @@ nvkm_fan_update(struct nvkm_fan *fan, bool immediate, int target)
spin_unlock_irqrestore(&fan->lock, flags); spin_unlock_irqrestore(&fan->lock, flags);
/* schedule next fan update, if not at target speed already */ /* schedule next fan update, if not at target speed already */
if (list_empty(&fan->alarm.head) && target != duty) { if (target != duty) {
u16 bump_period = fan->bios.bump_period; u16 bump_period = fan->bios.bump_period;
u16 slow_down_period = fan->bios.slow_down_period; u16 slow_down_period = fan->bios.slow_down_period;
u64 delay; u64 delay;
......
...@@ -53,7 +53,7 @@ nvkm_fantog_update(struct nvkm_fantog *fan, int percent) ...@@ -53,7 +53,7 @@ nvkm_fantog_update(struct nvkm_fantog *fan, int percent)
duty = !nvkm_gpio_get(gpio, 0, DCB_GPIO_FAN, 0xff); duty = !nvkm_gpio_get(gpio, 0, DCB_GPIO_FAN, 0xff);
nvkm_gpio_set(gpio, 0, DCB_GPIO_FAN, 0xff, duty); nvkm_gpio_set(gpio, 0, DCB_GPIO_FAN, 0xff, duty);
if (list_empty(&fan->alarm.head) && percent != (duty * 100)) { if (percent != (duty * 100)) {
u64 next_change = (percent * fan->period_us) / 100; u64 next_change = (percent * fan->period_us) / 100;
if (!duty) if (!duty)
next_change = fan->period_us - next_change; next_change = fan->period_us - next_change;
......
...@@ -185,7 +185,7 @@ alarm_timer_callback(struct nvkm_alarm *alarm) ...@@ -185,7 +185,7 @@ alarm_timer_callback(struct nvkm_alarm *alarm)
spin_unlock_irqrestore(&therm->sensor.alarm_program_lock, flags); spin_unlock_irqrestore(&therm->sensor.alarm_program_lock, flags);
/* schedule the next poll in one second */ /* schedule the next poll in one second */
if (therm->func->temp_get(therm) >= 0 && list_empty(&alarm->head)) if (therm->func->temp_get(therm) >= 0)
nvkm_timer_alarm(tmr, 1000000000ULL, alarm); nvkm_timer_alarm(tmr, 1000000000ULL, alarm);
} }
......
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