]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.2-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Apr 2012 18:29:08 +0000 (11:29 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Apr 2012 18:29:08 +0000 (11:29 -0700)
added patches:
drm-i915-mask-transcoder-select-bits-before-setting-them-on-lvds.patch

queue-3.2/drm-i915-mask-transcoder-select-bits-before-setting-them-on-lvds.patch [new file with mode: 0644]
queue-3.2/series [new file with mode: 0644]

diff --git a/queue-3.2/drm-i915-mask-transcoder-select-bits-before-setting-them-on-lvds.patch b/queue-3.2/drm-i915-mask-transcoder-select-bits-before-setting-them-on-lvds.patch
new file mode 100644 (file)
index 0000000..82c0d6e
--- /dev/null
@@ -0,0 +1,48 @@
+From 7885d2052bd94395e337709cfba093a41f273ff1 Mon Sep 17 00:00:00 2001
+From: Jesse Barnes <jbarnes@virtuousgeek.org>
+Date: Thu, 12 Jan 2012 14:51:17 -0800
+Subject: drm/i915: mask transcoder select bits before setting them on LVDS
+
+From: Jesse Barnes <jbarnes@virtuousgeek.org>
+
+commit 7885d2052bd94395e337709cfba093a41f273ff1 upstream.
+
+The transcoder port may changed from mode set to mode set, so make sure
+to mask out the selection bits before setting the right ones or we'll
+get black screens when going from transcoder B to A.
+
+Tested-by: Vincent Vanackere <vincent.vanackere@gmail.com>
+Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
+Reviewed-by: Keith Packard <keithp@keithp.com>
+Signed-off-by: Keith Packard <keithp@keithp.com>
+Cc: Jonathan Nieder <jrnieder@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+
+---
+ drivers/gpu/drm/i915/intel_display.c |   13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -5646,12 +5646,15 @@ static int ironlake_crtc_mode_set(struct
+       if (is_lvds) {
+               temp = I915_READ(PCH_LVDS);
+               temp |= LVDS_PORT_EN | LVDS_A0A2_CLKA_POWER_UP;
+-              if (HAS_PCH_CPT(dev))
++              if (HAS_PCH_CPT(dev)) {
++                      temp &= ~PORT_TRANS_SEL_MASK;
+                       temp |= PORT_TRANS_SEL_CPT(pipe);
+-              else if (pipe == 1)
+-                      temp |= LVDS_PIPEB_SELECT;
+-              else
+-                      temp &= ~LVDS_PIPEB_SELECT;
++              } else {
++                      if (pipe == 1)
++                              temp |= LVDS_PIPEB_SELECT;
++                      else
++                              temp &= ~LVDS_PIPEB_SELECT;
++              }
+               /* set the corresponsding LVDS_BORDER bit */
+               temp |= dev_priv->lvds_border_bits;
diff --git a/queue-3.2/series b/queue-3.2/series
new file mode 100644 (file)
index 0000000..2a77853
--- /dev/null
@@ -0,0 +1 @@
+drm-i915-mask-transcoder-select-bits-before-setting-them-on-lvds.patch