diff options
| -rw-r--r-- | 770c12312ad617172b1a65b911d3e6564fc5aca8.patch | 57 | ||||
| -rw-r--r-- | series | 1 |
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 @@ -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 |
