From ca09502aecafdd4c01088a59bcee0ea1abb2d712 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Fri, 8 Mar 2013 07:35:08 -0600 Subject: [PATCH] Revert write backlight harder until better solution is found (rhbz 917353) --- backlight_revert.patch | 61 ++++++++++++++++++++++++++++++++++++++++++ kernel.spec | 11 +++++++- 2 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 backlight_revert.patch diff --git a/backlight_revert.patch b/backlight_revert.patch new file mode 100644 index 000000000..6d2957c2a --- /dev/null +++ b/backlight_revert.patch @@ -0,0 +1,61 @@ +commit cf0a6584aa6d382f802f2c3cacac23ccbccde0cd +Author: Daniel Vetter +Date: Wed Feb 6 11:24:41 2013 +0100 + + drm/i915: write backlight harder + + 770c12312ad617172b1a65b911d3e6564fc5aca8 is the first bad commit + commit 770c12312ad617172b1a65b911d3e6564fc5aca8 + Author: Takashi Iwai + Date: Sat Aug 11 08:56:42 2012 +0200 + + drm/i915: Fix blank panel at reopening lid + + changed the register write sequence for restoring the backlight, which + helped prevent non-working backlights on some machines. Turns out that + the original sequence was the right thing to do for a different set of + machines. Worse, setting the backlight level _after_ enabling it seems + to reset it somehow. So we need to make that one conditional upon the + backlight having been reset to zero, and add the old one back. + + Cargo-culting at it's best, but it seems to work. + + Cc: stable@vger.kernel.org + Cc: Takashi Iwai + Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=47941 + Reviewed-by: Jani Nikula + Acked-by: Takashi Iwai + Signed-off-by: Daniel Vetter + +diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c +index bee8cb6..a3730e0 100644 +--- a/drivers/gpu/drm/i915/intel_panel.c ++++ b/drivers/gpu/drm/i915/intel_panel.c +@@ -321,6 +321,9 @@ 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; + +@@ -356,12 +359,12 @@ void intel_panel_enable_backlight(struct drm_device *dev, + } + + 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. ++ /* Check the current backlight level and try to set again if it's zero. ++ * On some machines, BLC_PWM_CPU_CTL is cleared to zero automatically ++ * when BLC_PWM_CPU_CTL2 and BLC_PWM_PCH_CTL1 are written. + */ +- dev_priv->backlight_enabled = true; +- intel_panel_actually_set_backlight(dev, dev_priv->backlight_level); ++ if (!intel_panel_get_backlight(dev)) ++ intel_panel_actually_set_backlight(dev, dev_priv->backlight_level); + } + + static void intel_panel_init_backlight(struct drm_device *dev) diff --git a/kernel.spec b/kernel.spec index f34fd3970..7813afef9 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 104 +%global baserelease 105 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -758,6 +758,9 @@ Patch24100: userns-avoid-recursion-in-put_user_ns.patch #rhbz 859346 Patch24101: fix-destroy_conntrack-GPF.patch +#rhbz 917353 +Patch24102: backlight_revert.patch + # END OF PATCH DEFINITIONS %endif @@ -1474,6 +1477,9 @@ ApplyPatch dmi_scan-fix-missing-check-for-_dmi_-signature-in-smbios_present.patc #CVE-2013-1828 rhbz 919315 919316 ApplyPatch net-sctp-Validate-parameter-size-for-SCTP_GET_ASSOC_.patch +#rhbz 917353 +ApplyPatch backlight_revert.patch -R + # END OF PATCH APPLICATIONS %endif @@ -2330,6 +2336,9 @@ fi # '-' | | # '-' %changelog +* Fri Mar 08 2013 Justin M. Forbes +- Revert "write backlight harder" until better solution is found (rhbz 917353) + * Fri Mar 08 2013 Josh Boyer - CVE-2013-1828 sctp: SCTP_GET_ASSOC_STATS stack buffer overflow (rhbz 919315 919316)