aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnimesh Manna <animesh.manna@intel.com>2015-08-25 16:06:08 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-09-30 04:14:24 -0400
commit4e961e426cdeb5c9f27d65fb0afb0010fcecfeae (patch)
tree9800eb9d99215b095ea6b8094f4933b3a423d7a9
parentc268444a2cecabc0ab567ca275662d80fa0ac813 (diff)
drm/i915/skl: Do not disable cdclk PLL if csr firmware is present
While display engine entering into low power state no need to disable cdclk pll as CSR firmware of dmc will take care. If pll is already enabled firmware execution sequence will be blocked. This is one of the criteria for dmc to work properly. v1: Initial version. v2: Based on review comment from Daniel added code commnent. Cc: Daniel Vetter <daniel.vetter@intel.com> Cc: Damien Lespiau <damien.lespiau@intel.com> Cc: Imre Deak <imre.deak@intel.com> Cc: Sunil Kamath <sunil.kamath@intel.com> Signed-off-by: Animesh Manna <animesh.manna@intel.com> Signed-off-bt: Vathsala Nagaraju <vathsala.nagaraju@intel.com> Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com> Reviewed-by: A.Sunil Kamath <sunil.kamath@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_display.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 184725770ae7..5d8645ee3294 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5709,10 +5709,16 @@ void skl_uninit_cdclk(struct drm_i915_private *dev_priv)
5709 if (I915_READ(DBUF_CTL) & DBUF_POWER_STATE) 5709 if (I915_READ(DBUF_CTL) & DBUF_POWER_STATE)
5710 DRM_ERROR("DBuf power disable timeout\n"); 5710 DRM_ERROR("DBuf power disable timeout\n");
5711 5711
5712 /* disable DPLL0 */ 5712 /*
5713 I915_WRITE(LCPLL1_CTL, I915_READ(LCPLL1_CTL) & ~LCPLL_PLL_ENABLE); 5713 * DMC assumes ownership of LCPLL and will get confused if we touch it.
5714 if (wait_for(!(I915_READ(LCPLL1_CTL) & LCPLL_PLL_LOCK), 1)) 5714 */
5715 DRM_ERROR("Couldn't disable DPLL0\n"); 5715 if (dev_priv->csr.dmc_payload) {
5716 /* disable DPLL0 */
5717 I915_WRITE(LCPLL1_CTL, I915_READ(LCPLL1_CTL) &
5718 ~LCPLL_PLL_ENABLE);
5719 if (wait_for(!(I915_READ(LCPLL1_CTL) & LCPLL_PLL_LOCK), 1))
5720 DRM_ERROR("Couldn't disable DPLL0\n");
5721 }
5716 5722
5717 intel_display_power_put(dev_priv, POWER_DOMAIN_PLLS); 5723 intel_display_power_put(dev_priv, POWER_DOMAIN_PLLS);
5718} 5724}