aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-10-31 17:52:30 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-11-11 17:51:31 -0500
commitce40141f55fa68f6d6e174fc86d727394897585b (patch)
tree2fdc40ade7471a18a59a730c4410a8d771e85e34
parent23670b322c100c8fb2aa0c3d281ed10af428f664 (diff)
drm/i915: implement WADP0ClockGatingDisable
Found in Bspec vol4h South Display Engine Registers [CPT, PPT], section "5.3.1 TRANS_CHICKEN_1—Transcoder Chicken Bits 1" v2: Make it compile. Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h4
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index e30d34b08069..3674891902fe 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -3824,6 +3824,10 @@
3824#define TRANS_6BPC (2<<5) 3824#define TRANS_6BPC (2<<5)
3825#define TRANS_12BPC (3<<5) 3825#define TRANS_12BPC (3<<5)
3826 3826
3827#define _TRANSA_CHICKEN1 0xf0060
3828#define _TRANSB_CHICKEN1 0xf1060
3829#define TRANS_CHICKEN1(pipe) _PIPE(pipe, _TRANSA_CHICKEN1, _TRANSB_CHICKEN1)
3830#define TRANS_CHICKEN1_DP0UNIT_GC_DISABLE (1<<4)
3827#define _TRANSA_CHICKEN2 0xf0064 3831#define _TRANSA_CHICKEN2 0xf0064
3828#define _TRANSB_CHICKEN2 0xf1064 3832#define _TRANSB_CHICKEN2 0xf1064
3829#define TRANS_CHICKEN2(pipe) _PIPE(pipe, _TRANSA_CHICKEN2, _TRANSB_CHICKEN2) 3833#define TRANS_CHICKEN2(pipe) _PIPE(pipe, _TRANSA_CHICKEN2, _TRANSB_CHICKEN2)
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 596d97a68c68..fe8178bb7705 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3794,6 +3794,7 @@ static void ibx_init_clock_gating(struct drm_device *dev)
3794static void cpt_init_clock_gating(struct drm_device *dev) 3794static void cpt_init_clock_gating(struct drm_device *dev)
3795{ 3795{
3796 struct drm_i915_private *dev_priv = dev->dev_private; 3796 struct drm_i915_private *dev_priv = dev->dev_private;
3797 int pipe;
3797 3798
3798 /* 3799 /*
3799 * On Ibex Peak and Cougar Point, we need to disable clock 3800 * On Ibex Peak and Cougar Point, we need to disable clock
@@ -3803,6 +3804,11 @@ static void cpt_init_clock_gating(struct drm_device *dev)
3803 I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE); 3804 I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE);
3804 I915_WRITE(SOUTH_CHICKEN2, I915_READ(SOUTH_CHICKEN2) | 3805 I915_WRITE(SOUTH_CHICKEN2, I915_READ(SOUTH_CHICKEN2) |
3805 DPLS_EDP_PPS_FIX_DIS); 3806 DPLS_EDP_PPS_FIX_DIS);
3807 /* WADP0ClockGatingDisable */
3808 for_each_pipe(pipe) {
3809 I915_WRITE(TRANS_CHICKEN1(pipe),
3810 TRANS_CHICKEN1_DP0UNIT_GC_DISABLE);
3811 }
3806} 3812}
3807 3813
3808void intel_init_clock_gating(struct drm_device *dev) 3814void intel_init_clock_gating(struct drm_device *dev)