diff mbox

Revert "drm/i915: Only enable the plane after setting the fb base (pre-ILK)"

Message ID yun39kjah02.fsf@aiko.keithp.com (mailing list archive)
State New, archived
Headers show

Commit Message

Keith Packard May 12, 2011, 6:52 p.m. UTC
This reverts commit 49183b2818de6899383bb82bc032f9344d6791ff.

Franz Melchior:

 This patch introduces a bug on my infamous "Acer Travelmate
 5735Z-452G32Mnss": when KMS takes over, the frame buffer contents
 get completely garbled up on screen, with colored stripes and
 unreadable text (photo on request). Only when X11 is started, the
 screen gets restored again. Closing and re-opening the lid partly
 cures the mess, too: it makes the font readable, though horizontally
 stretched.

---

On Thu, 12 May 2011 18:49:08 +0200, Melchior FRANZ <melchior.franz@gmail.com> wrote:

> * Linus Torvalds -- Tuesday 10 May 2011:
> > But please do test, just to make sure that 39-final is good.
> 
> > Chris Wilson (4):
> >       drm/i915: Only enable the plane after setting the fb base (pre-ILK)
> 
> This patch introduces a bug on my infamous "Acer Travelmate
> 5735Z-452G32Mnss": when KMS takes over, the frame buffer contents
> get completely garbled up on screen, with colored stripes and
> unreadable text (photo on request). Only when X11 is started, the
> screen gets restored again. Closing and re-opening the lid partly
> cures the mess, too: it makes the font readable, though horizontally
> stretched.
> 
> Reverting 49183b2818de6899383bb82bc032f9344d6791ff fixes the
> bug.

It's Whack-a-Mole time! Fix one laptop, break another. We'll pick 'no
regressions' over 'fixes existing bug' today.

 drivers/gpu/drm/i915/intel_display.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 373c2a0..2166ee0 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5154,6 +5154,8 @@  static int intel_crtc_mode_set(struct drm_crtc *crtc,
 
 	I915_WRITE(DSPCNTR(plane), dspcntr);
 	POSTING_READ(DSPCNTR(plane));
+	if (!HAS_PCH_SPLIT(dev))
+		intel_enable_plane(dev_priv, plane, pipe);
 
 	ret = intel_pipe_set_base(crtc, x, y, old_fb);