Patch "drm/nouveau/therm: remove ineffective workarounds for alarm bugs" has been added to the 4.11-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
drm/nouveau/therm: remove ineffective workarounds for alarm bugs
to the 4.11-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-nouveau-therm-remove-ineffective-workarounds-for-alarm-bugs.patch
and it can be found in the queue-4.11 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
e4311ee51d1e2676001b2d8fcefd92bdd79aad85Mon Sep 17 00:00:00 2001
From: Ben Skeggs <[email protected]>
Date: Thu, 11 May 2017 17:33:39 +1000
Subject: drm/nouveau/therm: remove ineffective workarounds for alarm bugs
From: Ben Skeggs <[email protected]>
commit e4311ee51d1e2676001b2d8fcefd92bdd79aad85 upstream.
These were ineffective due to touching the list without the alarm lock, but should no longer be required.
--- drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c +1 -1
@@ -146,7 +146,7 @@ nvkm_therm_update(struct nvkm_therm *the poll = false; } -if (list_empty (&therm->alarm.head) && poll) +if (poll)nvkm_timer_alarm (tmr,1000000000ULL , &therm->alarm);spin_unlock_irqrestore (&therm->lock, flags);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c +1 -1
@@ -83,7 +83,7 @@ nvkm_fan_update(struct nvkm_fan *fan, bospin_unlock_irqrestore (&fan->lock, flags);/* 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 slow_down_period = fan->bios.slow_down_period;u64 delay;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c +1 -1
@@ -53,7 +53,7 @@ nvkm_fantog_update(struct nvkm_fantog *f duty = !nvkm_gpio_get (gpio,0 ,DCB_GPIO_FAN ,0xff );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 ;if (!duty) next_change = fan->period_us - next_change;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c +1 -1
@@ -185,7 +185,7 @@ alarm_timer_callback(struct nvkm_alarm *spin_unlock_irqrestore (&therm->sensor.alarm_program_lock, flags);/* 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); }
Patches currently in stable-queue which might be from [email protected] are
queue-4.11/drm-nouveau-tmr-ack-interrupt-before-processing-alarms.patch queue-4.11/drm-nouveau-tmr-fix-corruption-of-the-pending-list-when-rescheduling-an-alarm.patch queue-4.11/drm-nouveau-tmr-avoid-processing-completed-alarms-when-adding-a-new-one.patch queue-4.11/drm-nouveau-mmu-nv4a-use-nv04-mmu-rather-than-the-nv44-one.patch queue-4.11/drm-nouveau-therm-remove-ineffective-workarounds-for-alarm-bugs.patch queue-4.11/drm-nouveau-kms-nv50-skip-core-channel-cursor-update-on-position-only-changes.patch queue-4.11/drm-nouveau-kms-nv50-fix-source-rect-only-plane-updates.patch queue-4.11/drm-nouveau-tmr-handle-races-with-hw-when-updating-the-next-alarm-time.patch