diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-10-31 17:52:30 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-11-11 17:51:31 -0500 |
commit | ce40141f55fa68f6d6e174fc86d727394897585b (patch) | |
tree | 2fdc40ade7471a18a59a730c4410a8d771e85e34 | |
parent | 23670b322c100c8fb2aa0c3d281ed10af428f664 (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.h | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 6 |
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) | |||
3794 | static void cpt_init_clock_gating(struct drm_device *dev) | 3794 | static 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 | ||
3808 | void intel_init_clock_gating(struct drm_device *dev) | 3814 | void intel_init_clock_gating(struct drm_device *dev) |