lkml.org 
[lkml]   [2017]   [May]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 031/103] drm/nouveau/therm: remove ineffective workarounds for alarm bugs
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Ben Skeggs <bskeggs@redhat.com>

    commit e4311ee51d1e2676001b2d8fcefd92bdd79aad85 upstream.

    These were ineffective due to touching the list without the alarm lock,
    but should no longer be required.

    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    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(-)

    --- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
    +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
    @@ -130,7 +130,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);

    --- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
    +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
    @@ -83,7 +83,7 @@ nvkm_fan_update(struct nvkm_fan *fan, bo
    spin_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;
    --- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
    +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
    @@ -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;
    --- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
    +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
    @@ -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);
    }


    \
     
     \ /
      Last update: 2017-05-23 22:37    [W:4.111 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site