[PATCH 00/18] Rework PM init order

Alex Deucher alexdeucher at gmail.com
Thu Dec 19 16:51:04 PST 2013


Newer asics require that the dpm be initialized prior to
the other engines in order for clockgating to work properly.
The tricky part is that other aspects of dpm are required
at later stages (e.g., after displays are enumerated).

This patch set reworks the power management init flow
to accomodate the requirements of newer hardware.  Most
of the pm init/fini/suspend/resume flow has now moved into
the asic specific functions.  As a result, dpm now initializes
reliably on CIK parts and clockgating on these parts now works
and is enabled by default.  Powergating support for CIK parts
is also improved, but is not yet ready to be enabled by default.

I think it's now safe to enable dpm by default on CIK parts.

Alex Deucher (18):
  drm/radeon/dpm: remove unnecessary checks in dpm_init
  drm/radeon/si: drop cg_update from dpm code
  drm/radeon/cik: drop cg_update from dpm code
  drm/radeon: re-order firmware loading in preparation for dpm rework
  drm/radeon/dpm: add a late enable callback
  drm/radeon/dpm: add late_enable for rs780/rs880/rv6xx
  drm/radeon/dpm: add late_enable for rv7xx-NI
  drm/radeon/dpm: add late_enable for sumo
  drm/radeon/dpm: add late_enable for trinity
  drm/radeon/dpm: add late_enable for SI
  drm/radeon/dpm: add late_enable for CI
  drm/radeon/dpm: add late_enable for KB/KV
  drm/radeon/dpm: switch on new late_enable callback
  drm/radeon/pm: move pm handling into the asic specific code
  drm/radeon: enable gfx cgcg on CIK dGPUs
  drm/radeon: enable gfx cgcg on CIK APUs
  drm/radeon: enable dpm by default on CI dGPUs
  drm/radeon: enable dpm by default on CI APUs

 drivers/gpu/drm/radeon/btc_dpm.c        |  20 ++---
 drivers/gpu/drm/radeon/ci_dpm.c         |  58 ++++---------
 drivers/gpu/drm/radeon/cik.c            |  51 +++++++-----
 drivers/gpu/drm/radeon/cypress_dpm.c    |  15 ----
 drivers/gpu/drm/radeon/evergreen.c      |  42 ++++++----
 drivers/gpu/drm/radeon/kv_dpm.c         |  48 ++++-------
 drivers/gpu/drm/radeon/ni.c             |  43 ++++++----
 drivers/gpu/drm/radeon/ni_dpm.c         |  21 ++---
 drivers/gpu/drm/radeon/r100.c           |   7 ++
 drivers/gpu/drm/radeon/r300.c           |   7 ++
 drivers/gpu/drm/radeon/r420.c           |   7 ++
 drivers/gpu/drm/radeon/r520.c           |   5 ++
 drivers/gpu/drm/radeon/r600.c           |  23 ++++--
 drivers/gpu/drm/radeon/r600_dpm.c       |  20 ++++-
 drivers/gpu/drm/radeon/r600_dpm.h       |   2 -
 drivers/gpu/drm/radeon/radeon.h         |   3 +
 drivers/gpu/drm/radeon/radeon_asic.c    |  19 ++++-
 drivers/gpu/drm/radeon/radeon_asic.h    |   7 ++
 drivers/gpu/drm/radeon/radeon_device.c  |  14 +++-
 drivers/gpu/drm/radeon/radeon_display.c |  17 +++-
 drivers/gpu/drm/radeon/radeon_pm.c      | 140 ++++++++++++++++++--------------
 drivers/gpu/drm/radeon/rs400.c          |   7 ++
 drivers/gpu/drm/radeon/rs600.c          |   7 ++
 drivers/gpu/drm/radeon/rs690.c          |   7 ++
 drivers/gpu/drm/radeon/rs780_dpm.c      |   8 --
 drivers/gpu/drm/radeon/rv515.c          |   7 ++
 drivers/gpu/drm/radeon/rv6xx_dpm.c      |  10 ---
 drivers/gpu/drm/radeon/rv770.c          |  23 ++++--
 drivers/gpu/drm/radeon/rv770_dpm.c      |  15 +++-
 drivers/gpu/drm/radeon/rv770_dpm.h      |   4 -
 drivers/gpu/drm/radeon/si.c             |  35 +++++---
 drivers/gpu/drm/radeon/si_dpm.c         |  60 ++++----------
 drivers/gpu/drm/radeon/sumo_dpm.c       |  19 +++--
 drivers/gpu/drm/radeon/trinity_dpm.c    |  17 +++-
 34 files changed, 432 insertions(+), 356 deletions(-)

-- 
1.8.3.1



More information about the dri-devel mailing list