diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2013-10-02 13:34:19 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-10-15 03:33:44 -0400 |
commit | cd66407810869709e0d6764409137d48c6812cfc (patch) | |
tree | 3dd710675861cda9f3f8518d2355a1ddfc7e0a39 /drivers/gpu/drm | |
parent | 61e6cfa80de5760bbe406f4e815b7739205754d2 (diff) |
drm/i915: disable LVDS clock gating on CPT v2
Needed to prevent display corruption in high res panels.
v2: use correct unit names (Rodrigo)
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Tested-by: Ulrich Drepper <drepper@gmail.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 38f96f65d87a..fd721ea8728e 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
@@ -4279,7 +4279,9 @@ | |||
4279 | #define FDI_RX_CHICKEN(pipe) _PIPE(pipe, _FDI_RXA_CHICKEN, _FDI_RXB_CHICKEN) | 4279 | #define FDI_RX_CHICKEN(pipe) _PIPE(pipe, _FDI_RXA_CHICKEN, _FDI_RXB_CHICKEN) |
4280 | 4280 | ||
4281 | #define SOUTH_DSPCLK_GATE_D 0xc2020 | 4281 | #define SOUTH_DSPCLK_GATE_D 0xc2020 |
4282 | #define PCH_DPLUNIT_CLOCK_GATE_DISABLE (1<<30) | ||
4282 | #define PCH_DPLSUNIT_CLOCK_GATE_DISABLE (1<<29) | 4283 | #define PCH_DPLSUNIT_CLOCK_GATE_DISABLE (1<<29) |
4284 | #define PCH_CPUNIT_CLOCK_GATE_DISABLE (1<<14) | ||
4283 | #define PCH_LP_PARTITION_LEVEL_DISABLE (1<<12) | 4285 | #define PCH_LP_PARTITION_LEVEL_DISABLE (1<<12) |
4284 | 4286 | ||
4285 | /* CPU: FDI_TX */ | 4287 | /* CPU: FDI_TX */ |
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index f4c5e95b2d6f..26c2ea3e985c 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c | |||
@@ -4759,7 +4759,9 @@ static void cpt_init_clock_gating(struct drm_device *dev) | |||
4759 | * gating for the panel power sequencer or it will fail to | 4759 | * gating for the panel power sequencer or it will fail to |
4760 | * start up when no ports are active. | 4760 | * start up when no ports are active. |
4761 | */ | 4761 | */ |
4762 | I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE); | 4762 | I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE | |
4763 | PCH_DPLUNIT_CLOCK_GATE_DISABLE | | ||
4764 | PCH_CPUNIT_CLOCK_GATE_DISABLE); | ||
4763 | I915_WRITE(SOUTH_CHICKEN2, I915_READ(SOUTH_CHICKEN2) | | 4765 | I915_WRITE(SOUTH_CHICKEN2, I915_READ(SOUTH_CHICKEN2) | |
4764 | DPLS_EDP_PPS_FIX_DIS); | 4766 | DPLS_EDP_PPS_FIX_DIS); |
4765 | /* The below fixes the weird display corruption, a few pixels shifted | 4767 | /* The below fixes the weird display corruption, a few pixels shifted |