aboutsummaryrefslogtreecommitdiffstats
diff options
-rw-r--r--770c12312ad617172b1a65b911d3e6564fc5aca8.patch57
-rw-r--r--series1
2 files changed, 58 insertions, 0 deletions
diff --git a/770c12312ad617172b1a65b911d3e6564fc5aca8.patch b/770c12312ad617172b1a65b911d3e6564fc5aca8.patch
new file mode 100644
index 00000000000000..76a63f9a63f248
--- /dev/null
+++ b/770c12312ad617172b1a65b911d3e6564fc5aca8.patch
@@ -0,0 +1,57 @@
+From 770c12312ad617172b1a65b911d3e6564fc5aca8 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Sat, 11 Aug 2012 06:56:42 +0000
+Subject: drm/i915: Fix blank panel at reopening lid
+
+When you reopen the lid on a laptop with PCH, the panel suddenly goes
+blank sometimes. It seems because BLC_PWM_CPU_CTL register is cleared
+to zero when BLC_PWM_CPU_CTL2 and BLC_PWM_PCH_CTL1 registers are
+enabled.
+
+This patch fixes the problem by moving the call of the function setting
+BLC_PWM_CPU_CTL after enabling other two registers.
+
+Reported-and-tested-by: Hugh Dickins <hughd@google.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+---
+diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
+index 9474488..3df4f5f 100644
+--- a/drivers/gpu/drm/i915/intel_panel.c
++++ b/drivers/gpu/drm/i915/intel_panel.c
+@@ -311,9 +311,6 @@ void intel_panel_enable_backlight(struct drm_device *dev,
+ if (dev_priv->backlight_level == 0)
+ dev_priv->backlight_level = intel_panel_get_max_backlight(dev);
+
+- dev_priv->backlight_enabled = true;
+- intel_panel_actually_set_backlight(dev, dev_priv->backlight_level);
+-
+ if (INTEL_INFO(dev)->gen >= 4) {
+ uint32_t reg, tmp;
+
+@@ -326,7 +323,7 @@ void intel_panel_enable_backlight(struct drm_device *dev,
+ * we don't track the backlight dpms state, hence check whether
+ * we have to do anything first. */
+ if (tmp & BLM_PWM_ENABLE)
+- return;
++ goto set_level;
+
+ if (dev_priv->num_pipe == 3)
+ tmp &= ~BLM_PIPE_SELECT_IVB;
+@@ -347,6 +344,14 @@ void intel_panel_enable_backlight(struct drm_device *dev,
+ I915_WRITE(BLC_PWM_PCH_CTL1, tmp);
+ }
+ }
++
++set_level:
++ /* Call below after setting BLC_PWM_CPU_CTL2 and BLC_PWM_PCH_CTL1.
++ * BLC_PWM_CPU_CTL may be cleared to zero automatically when these
++ * registers are set.
++ */
++ dev_priv->backlight_enabled = true;
++ intel_panel_actually_set_backlight(dev, dev_priv->backlight_level);
+ }
+
+ static void intel_panel_init_backlight(struct drm_device *dev)
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/series b/series
index 5c3924cf535bcd..b3a9ec5e39e066 100644
--- a/series
+++ b/series
@@ -1,4 +1,5 @@
# My specific stuff, at the top to make it easier to work stuff below.
+770c12312ad617172b1a65b911d3e6564fc5aca8.patch
fix_greg_graphics.patch
time-don-t-inline-export_symbol-functions.patch
gregkh/gkh-version.patch