Revert "drm/i915: write backlight harder"
This reverts commitcf0a6584aa
. Turns out that cargo-culting breaks systems. Note that we can't revert further, since commit770c12312a
Author: Takashi Iwai <tiwai@suse.de> Date: Sat Aug 11 08:56:42 2012 +0200 drm/i915: Fix blank panel at reopening lid fixed a regression in 3.6-rc kernels for which we've never figured out the exact root cause. But some further inspection of the backlight code reveals that it's seriously lacking locking. And especially the asle backlight update is know to get fired (through some smm magic) when writing specific backlight control registers. So the possibility of suffering from races is rather real. Until those races are fixed I don't think it makes sense to try further hacks. Which sucks a bit, but sometimes that's how it is :( References: http://www.mail-archive.com/intel-gfx@lists.freedesktop.org/msg18788.html Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=47941 Tested-by: Takashi Iwai <tiwai@suse.de> Cc: Jani Nikula <jani.nikula@intel.com> Cc: Takashi Iwai <tiwai@suse.de> Cc: stable@vger.kernel.org (the reverted commit was cc: stable, too) Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
2124b72e62
commit
b1289371fc
|
@ -321,9 +321,6 @@ void intel_panel_enable_backlight(struct drm_device *dev,
|
||||||
if (dev_priv->backlight_level == 0)
|
if (dev_priv->backlight_level == 0)
|
||||||
dev_priv->backlight_level = intel_panel_get_max_backlight(dev);
|
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) {
|
if (INTEL_INFO(dev)->gen >= 4) {
|
||||||
uint32_t reg, tmp;
|
uint32_t reg, tmp;
|
||||||
|
|
||||||
|
@ -359,12 +356,12 @@ void intel_panel_enable_backlight(struct drm_device *dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
set_level:
|
set_level:
|
||||||
/* Check the current backlight level and try to set again if it's zero.
|
/* Call below after setting BLC_PWM_CPU_CTL2 and BLC_PWM_PCH_CTL1.
|
||||||
* On some machines, BLC_PWM_CPU_CTL is cleared to zero automatically
|
* BLC_PWM_CPU_CTL may be cleared to zero automatically when these
|
||||||
* when BLC_PWM_CPU_CTL2 and BLC_PWM_PCH_CTL1 are written.
|
* registers are set.
|
||||||
*/
|
*/
|
||||||
if (!intel_panel_get_backlight(dev))
|
dev_priv->backlight_enabled = true;
|
||||||
intel_panel_actually_set_backlight(dev, dev_priv->backlight_level);
|
intel_panel_actually_set_backlight(dev, dev_priv->backlight_level);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void intel_panel_init_backlight(struct drm_device *dev)
|
static void intel_panel_init_backlight(struct drm_device *dev)
|
||||||
|
|
Loading…
Reference in New Issue