diff options
author | Imre Deak <imre.deak@intel.com> | 2016-04-20 13:27:57 -0400 |
---|---|---|
committer | Imre Deak <imre.deak@intel.com> | 2016-04-22 08:12:05 -0400 |
commit | f62c79b33ff150da40fcdfc8cd48d0dd77f62902 (patch) | |
tree | 5d9941fe3511347de01a645e74a3efcbe636250b | |
parent | da2f41d107e57074814ad44f4cea2b7befe3b7c4 (diff) |
drm/i915/bxt: Enable DC5 during runtime resume
Right after runtime resume we know that we can re-enable DC5, since we
just disabled DC9 and power well 2 is disabled. So enable DC5 explicitly
instead of delaying this until the next time we disable power well 2.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1461173277-16090-5-git-send-email-imre.deak@intel.com
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_runtime_pm.c | 2 |
3 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index a0f8913a76f8..7a0e4d6c71e2 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
@@ -1601,6 +1601,9 @@ static int intel_runtime_resume(struct device *device) | |||
1601 | if (IS_BROXTON(dev)) { | 1601 | if (IS_BROXTON(dev)) { |
1602 | bxt_disable_dc9(dev_priv); | 1602 | bxt_disable_dc9(dev_priv); |
1603 | bxt_display_core_init(dev_priv, true); | 1603 | bxt_display_core_init(dev_priv, true); |
1604 | if (dev_priv->csr.dmc_payload && | ||
1605 | (dev_priv->csr.allowed_dc_mask & DC_STATE_EN_UPTO_DC5)) | ||
1606 | gen9_enable_dc5(dev_priv); | ||
1604 | } else if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) { | 1607 | } else if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) { |
1605 | hsw_disable_pc8(dev_priv); | 1608 | hsw_disable_pc8(dev_priv); |
1606 | } else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) { | 1609 | } else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) { |
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index 5464632d466c..b9f1304439e2 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
@@ -1238,6 +1238,7 @@ void broxton_ddi_phy_verify_state(struct drm_i915_private *dev_priv); | |||
1238 | void gen9_sanitize_dc_state(struct drm_i915_private *dev_priv); | 1238 | void gen9_sanitize_dc_state(struct drm_i915_private *dev_priv); |
1239 | void bxt_enable_dc9(struct drm_i915_private *dev_priv); | 1239 | void bxt_enable_dc9(struct drm_i915_private *dev_priv); |
1240 | void bxt_disable_dc9(struct drm_i915_private *dev_priv); | 1240 | void bxt_disable_dc9(struct drm_i915_private *dev_priv); |
1241 | void gen9_enable_dc5(struct drm_i915_private *dev_priv); | ||
1241 | void skl_init_cdclk(struct drm_i915_private *dev_priv); | 1242 | void skl_init_cdclk(struct drm_i915_private *dev_priv); |
1242 | int skl_sanitize_cdclk(struct drm_i915_private *dev_priv); | 1243 | int skl_sanitize_cdclk(struct drm_i915_private *dev_priv); |
1243 | void skl_uninit_cdclk(struct drm_i915_private *dev_priv); | 1244 | void skl_uninit_cdclk(struct drm_i915_private *dev_priv); |
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c index 8fff0800b4ed..7fb1da4e7fc3 100644 --- a/drivers/gpu/drm/i915/intel_runtime_pm.c +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c | |||
@@ -582,7 +582,7 @@ static void assert_can_enable_dc5(struct drm_i915_private *dev_priv) | |||
582 | assert_csr_loaded(dev_priv); | 582 | assert_csr_loaded(dev_priv); |
583 | } | 583 | } |
584 | 584 | ||
585 | static void gen9_enable_dc5(struct drm_i915_private *dev_priv) | 585 | void gen9_enable_dc5(struct drm_i915_private *dev_priv) |
586 | { | 586 | { |
587 | assert_can_enable_dc5(dev_priv); | 587 | assert_can_enable_dc5(dev_priv); |
588 | 588 | ||