[Intel-gfx] [PATCH 09/37] drm/i915: Only enable the pipe/plane if they is a bound fb.
Chris Wilson
chris at chris-wilson.co.uk
Wed Mar 10 23:44:56 CET 2010
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
drivers/gpu/drm/i915/intel_display.c | 35 +++++++++++++++++----------------
1 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index e8b5389..3904d43 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3238,18 +3238,6 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
/* setup pipeconf */
pipeconf = I915_READ(pipeconf_reg);
- /* Set up the display plane register */
- dspcntr = DISPPLANE_GAMMA_ENABLE;
-
- /* Ironlake's plane is forced to pipe, bit 24 is to
- enable color space conversion */
- if (!HAS_PCH_SPLIT(dev)) {
- if (pipe == 0)
- dspcntr &= ~DISPPLANE_SEL_PIPE_MASK;
- else
- dspcntr |= DISPPLANE_SEL_PIPE_B;
- }
-
if (pipe == 0 && !IS_I965G(dev)) {
/* Enable pixel doubling when the dot clock is > 90% of the (display)
* core speed.
@@ -3264,7 +3252,6 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
pipeconf &= ~PIPEACONF_DOUBLE_WIDE;
}
- dspcntr |= DISPLAY_PLANE_ENABLE;
pipeconf |= PIPEACONF_ENABLE;
dpll |= DPLL_VCO_ENABLE;
@@ -3425,13 +3412,27 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
I915_WRITE(DISP_ARB_CTL, temp | DISP_TILE_SURFACE_SWIZZLING);
}
- I915_WRITE(dspcntr_reg, dspcntr);
-
/* Flush the plane changes */
ret = intel_pipe_set_base(crtc, x, y, old_fb);
- if ((IS_I965G(dev) || plane == 0))
- intel_update_fbc(crtc, &crtc->mode);
+ /* And then enable the plane */
+ dspcntr = I915_READ(dspcntr_reg);
+ dspcntr |= DISPPLANE_GAMMA_ENABLE;
+ if (crtc->fb)
+ dspcntr |= DISPLAY_PLANE_ENABLE;
+ else
+ dspcntr &= ~DISPLAY_PLANE_ENABLE;
+
+ /* Ironlake's plane is forced to pipe, bit 24 is to
+ enable color space conversion */
+ if (!HAS_PCH_SPLIT(dev)) {
+ if (pipe == 0)
+ dspcntr &= ~DISPPLANE_SEL_PIPE_MASK;
+ else
+ dspcntr |= DISPPLANE_SEL_PIPE_B;
+ }
+
+ I915_WRITE(dspcntr_reg, dspcntr);
intel_update_watermarks(dev);
--
1.7.0
More information about the Intel-gfx
mailing list