aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_runtime_pm.c
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2015-07-08 16:45:58 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-08-26 08:37:39 -0400
commit3e28878635cc3bb3159445dc9cfbdc3d34eb8daf (patch)
tree3c9cb82fef27f98cb5d586cf79e1a37b30f98852 /drivers/gpu/drm/i915/intel_runtime_pm.c
parentee27921824e6ad0ca2d8e5abfa12cf4d853ded6c (diff)
drm/i915: Force CL2 off in CHV x1 PHY
We can choose to leave the display PHY CL2 powerdown up to some hardware signals, or we can force it. The BXT code forces the nonexistent CL2 in the x1 PHY to power down. Follow suit on CHV. Maybe it can still save some extra power by disabling some extra logic in CL1, or something. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_runtime_pm.c')
-rw-r--r--drivers/gpu/drm/i915/intel_runtime_pm.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
index ef043b2c06b2..a0df156ee92e 100644
--- a/drivers/gpu/drm/i915/intel_runtime_pm.c
+++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
@@ -996,6 +996,15 @@ static void chv_dpio_cmn_power_well_enable(struct drm_i915_private *dev_priv,
996 tmp = vlv_dpio_read(dev_priv, pipe, _CHV_CMN_DW6_CH1); 996 tmp = vlv_dpio_read(dev_priv, pipe, _CHV_CMN_DW6_CH1);
997 tmp |= DPIO_DYNPWRDOWNEN_CH1; 997 tmp |= DPIO_DYNPWRDOWNEN_CH1;
998 vlv_dpio_write(dev_priv, pipe, _CHV_CMN_DW6_CH1, tmp); 998 vlv_dpio_write(dev_priv, pipe, _CHV_CMN_DW6_CH1, tmp);
999 } else {
1000 /*
1001 * Force the non-existing CL2 off. BXT does this
1002 * too, so maybe it saves some power even though
1003 * CL2 doesn't exist?
1004 */
1005 tmp = vlv_dpio_read(dev_priv, pipe, CHV_CMN_DW30);
1006 tmp |= DPIO_CL2_LDOFUSE_PWRENB;
1007 vlv_dpio_write(dev_priv, pipe, CHV_CMN_DW30, tmp);
999 } 1008 }
1000 1009
1001 mutex_unlock(&dev_priv->sb_lock); 1010 mutex_unlock(&dev_priv->sb_lock);