From 748f2fd25e8e2e6135aef48af2568606d603c2b4 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 13 Apr 2012 11:29:08 -0700 Subject: [PATCH] 3.2-stable patches added patches: drm-i915-mask-transcoder-select-bits-before-setting-them-on-lvds.patch --- ...ect-bits-before-setting-them-on-lvds.patch | 48 +++++++++++++++++++ queue-3.2/series | 1 + 2 files changed, 49 insertions(+) create mode 100644 queue-3.2/drm-i915-mask-transcoder-select-bits-before-setting-them-on-lvds.patch create mode 100644 queue-3.2/series 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 index 00000000000..82c0d6e1ad5 --- /dev/null +++ b/queue-3.2/drm-i915-mask-transcoder-select-bits-before-setting-them-on-lvds.patch @@ -0,0 +1,48 @@ +From 7885d2052bd94395e337709cfba093a41f273ff1 Mon Sep 17 00:00:00 2001 +From: Jesse Barnes +Date: Thu, 12 Jan 2012 14:51:17 -0800 +Subject: drm/i915: mask transcoder select bits before setting them on LVDS + +From: Jesse Barnes + +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 +Signed-off-by: Jesse Barnes +Reviewed-by: Keith Packard +Signed-off-by: Keith Packard +Cc: Jonathan Nieder +Signed-off-by: Greg Kroah-Hartman + + +--- + 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 index 00000000000..2a778530527 --- /dev/null +++ b/queue-3.2/series @@ -0,0 +1 @@ +drm-i915-mask-transcoder-select-bits-before-setting-them-on-lvds.patch -- 2.47.3