[PATCH 00/18] Rework PM init order

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