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

From: Keith Packard
Date: Thu May 12 2011 - 14:52:40 EST



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@xxxxxxxxx> 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 --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);

--
1.7.5.1

Attachment: pgp00000.pgp
Description: PGP signature