From 11e347b39ccda43ba16a6311139e9fbac065cdfc Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Sun, 22 Sep 2013 20:47:49 +0200 Subject: [PATCH] drm/i915: preserve pipe A quirk in i9xx_set_pipeconf This regression has been introduced in commit 9f11a9e4e50006b615ba94722dfc33ced89664cf Author: Daniel Vetter Date: Thu Jun 13 00:54:58 2013 +0200 drm/i915: set up PIPECONF explicitly for i9xx/vlv platforms Ville brough up the idea that this is just the pipe A quirk gone wrong. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66462 References: https://lkml.org/lkml/2013/8/26/238 Cc: Meelis Roos Cc: Chris Wilson Signed-off-by: Daniel Vetter --- drivers/gpu/drm/i915/intel_display.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index f7d868e..be97b42 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -4833,7 +4833,11 @@ static void i9xx_set_pipeconf(struct intel_crtc *intel_crtc) struct drm_i915_private *dev_priv = dev->dev_private; uint32_t pipeconf; - pipeconf = 0; + if (dev_priv->quirks & QUIRK_PIPEA_FORCE) { + pipeconf = + I915_READ(PIPECONF(intel_crtc->pipe)) & PIPECONF_ENABLE; + } else + pipeconf = 0; if (intel_crtc->config.double_wide) pipeconf |= PIPECONF_DOUBLE_WIDE; -- 1.8.4.rc3