[Nouveau] [PATCH 0/5] Thermal management fixes

Martin Peres martin.peres at free.fr
Sun Aug 11 19:48:47 PDT 2013


From: Martin Peres <martin.peres at labri.fr>

This patchset is mostly about fixing fdo bug #66177, reported by Dash Four.
This bug is about fan/temp management not working after a suspend/resume cycle.

Fan/therm management relies on ptimer's alarm feature to call periodically
multiple callbacks that poll the temperature and update the fan speed if needed.
The problem is that there is no easy way to make this work across suspend or
hibernate cycles because it would require making sure the IRQs aren't serviced
until all nouveau engines and subdevs are initialized after resume. This means
the alarm feature should be the last thing re-activated again. 

The proposed solution is a bit simpler. Ptimer.alarm's clients should cancel
their scheduled tasks before suspending and re-add them when resuming. The code
is thus very simple.

Patch 3 should also fix fan speed reading while suspending.

Emil Velikov (1):
  drm/nouveau/therm: Set the correct pwm_mode upon resume

Martin Peres (4):
  drm/nouveau/fan: restore the PWM value on resume when using the manual
    or auto mode
  drm/nouveau/timer: restore the time on resume
  drm/nouveau/timer: add a way to cancel alarms
  drm/nouveau/therm: survive to suspend/resume cycles

 .../gpu/drm/nouveau/core/include/subdev/timer.h    |  2 ++
 drivers/gpu/drm/nouveau/core/subdev/therm/base.c   | 19 ++++++++++--
 drivers/gpu/drm/nouveau/core/subdev/therm/fan.c    | 20 +++++++++++++
 drivers/gpu/drm/nouveau/core/subdev/therm/priv.h   |  4 +++
 drivers/gpu/drm/nouveau/core/subdev/therm/temp.c   | 21 +++++++++++++
 drivers/gpu/drm/nouveau/core/subdev/timer/base.c   |  7 +++++
 drivers/gpu/drm/nouveau/core/subdev/timer/nv04.c   | 35 +++++++++++++++++++++-
 7 files changed, 104 insertions(+), 4 deletions(-)

-- 
1.8.3.4



More information about the Nouveau mailing list