--- /dev/null
+From 01e3a8feb40e54b962a20fa7eb595c5efef5e109 Mon Sep 17 00:00:00 2001
+From: Jani Nikula <jani.nikula@intel.com>
+Date: Tue, 22 Jan 2013 12:50:35 +0200
+Subject: drm/i915: add quirk to invert brightness on eMachines e725
+
+From: Jani Nikula <jani.nikula@intel.com>
+
+commit 01e3a8feb40e54b962a20fa7eb595c5efef5e109 upstream.
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=31522#c35
+[Note: There are more than one broken setups in the bug. This fixes one.]
+Reported-by: Martins <andrissr@inbox.lv>
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+[wml: Backported to 3.4: Adjust context]
+Signed-off-by: Weng Meiling <wengmeiling.weng@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/i915/intel_display.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -9249,6 +9249,9 @@ struct intel_quirk intel_quirks[] = {
+ /* Acer/eMachines G725 */
+ { 0x2a42, 0x1025, 0x0210, quirk_invert_brightness },
+
++ /* Acer/eMachines e725 */
++ { 0x2a42, 0x1025, 0x0212, quirk_invert_brightness },
++
+ /* Dell XPS13 HD Sandy Bridge */
+ { 0x0116, 0x1028, 0x052e, quirk_no_pcm_pwm_enable },
+ /* Dell XPS13 HD and XPS13 FHD Ivy Bridge */
--- /dev/null
+From 1ffff60320879830e469e26062c18f75236822ba Mon Sep 17 00:00:00 2001
+From: Jani Nikula <jani.nikula@intel.com>
+Date: Tue, 22 Jan 2013 12:50:34 +0200
+Subject: drm/i915: add quirk to invert brightness on eMachines G725
+
+From: Jani Nikula <jani.nikula@intel.com>
+
+commit 1ffff60320879830e469e26062c18f75236822ba upstream.
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59628
+Reported-by: Roland Gruber <post@rolandgruber.de>
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+[wml: Backported to 3.4: Adjust context]
+Signed-off-by: Weng Meiling <wengmeiling.weng@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/i915/intel_display.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -9246,6 +9246,9 @@ struct intel_quirk intel_quirks[] = {
+ /* Acer Aspire 5734Z must invert backlight brightness */
+ { 0x2a42, 0x1025, 0x0459, quirk_invert_brightness },
+
++ /* Acer/eMachines G725 */
++ { 0x2a42, 0x1025, 0x0210, quirk_invert_brightness },
++
+ /* Dell XPS13 HD Sandy Bridge */
+ { 0x0116, 0x1028, 0x052e, quirk_no_pcm_pwm_enable },
+ /* Dell XPS13 HD and XPS13 FHD Ivy Bridge */
--- /dev/null
+From 5559ecadad5a73b27f863e92f4b4f369501dce6f Mon Sep 17 00:00:00 2001
+From: Jani Nikula <jani.nikula@intel.com>
+Date: Tue, 22 Jan 2013 12:50:36 +0200
+Subject: drm/i915: add quirk to invert brightness on Packard Bell NCL20
+
+From: Jani Nikula <jani.nikula@intel.com>
+
+commit 5559ecadad5a73b27f863e92f4b4f369501dce6f upstream.
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44156
+Reported-by: Alan Zimmerman <alan.zimm@gmail.com>
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+[wml: Backported to 3.4: Adjust context]
+Signed-off-by: Weng Meiling <wengmeiling.weng@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/i915/intel_display.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -9252,6 +9252,9 @@ struct intel_quirk intel_quirks[] = {
+ /* Acer/eMachines e725 */
+ { 0x2a42, 0x1025, 0x0212, quirk_invert_brightness },
+
++ /* Acer/Packard Bell NCL20 */
++ { 0x2a42, 0x1025, 0x034b, quirk_invert_brightness },
++
+ /* Dell XPS13 HD Sandy Bridge */
+ { 0x0116, 0x1028, 0x052e, quirk_no_pcm_pwm_enable },
+ /* Dell XPS13 HD and XPS13 FHD Ivy Bridge */
--- /dev/null
+From 5a15ab5b93e4a3ebcd4fa6c76cf646a45e9cf806 Mon Sep 17 00:00:00 2001
+From: Carsten Emde <C.Emde@osadl.org>
+Date: Thu, 15 Mar 2012 15:56:27 +0100
+Subject: drm/i915: panel: invert brightness acer aspire 5734z
+
+commit 5a15ab5b93e4a3ebcd4fa6c76cf646a45e9cf806 upstream.
+
+Mark the Acer Aspire 5734Z that this machines requires the module to
+invert the panel backlight brightness value after reading from and prior
+to writing to the PCI configuration space.
+
+Signed-off-by: Carsten Emde <C.Emde@osadl.org>
+Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Acked-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+[wml: Backported to 3.4: Adjust context]
+Signed-off-by: Weng Meiling <wengmeiling.weng@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/i915/intel_display.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -9201,7 +9201,8 @@ static void quirk_no_pcm_pwm_enable(stru
+ }
+
+ /*
+- * A machine may need to invert the panel backlight brightness value
++ * A machine (e.g. Acer Aspire 5734Z) may need to invert the panel backlight
++ * brightness value
+ */
+ static void quirk_invert_brightness(struct drm_device *dev)
+ {
+@@ -9242,6 +9243,9 @@ struct intel_quirk intel_quirks[] = {
+ /* Sony Vaio Y cannot use SSC on LVDS */
+ { 0x0046, 0x104d, 0x9076, quirk_ssc_force_disable },
+
++ /* Acer Aspire 5734Z must invert backlight brightness */
++ { 0x2a42, 0x1025, 0x0459, quirk_invert_brightness },
++
+ /* Dell XPS13 HD Sandy Bridge */
+ { 0x0116, 0x1028, 0x052e, quirk_no_pcm_pwm_enable },
+ /* Dell XPS13 HD and XPS13 FHD Ivy Bridge */
--- /dev/null
+From 4dca20efb1a9c2efefc28ad2867e5d6c3f5e1955 Mon Sep 17 00:00:00 2001
+From: Carsten Emde <C.Emde@osadl.org>
+Date: Thu, 15 Mar 2012 15:56:26 +0100
+Subject: drm/i915: panel: invert brightness via quirk
+
+From: Carsten Emde <C.Emde@osadl.org>
+
+commit 4dca20efb1a9c2efefc28ad2867e5d6c3f5e1955 upstream.
+
+A machine may need to invert the panel backlight brightness value. This
+patch adds the infrastructure for a quirk to do so.
+
+Signed-off-by: Carsten Emde <C.Emde@osadl.org>
+Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Acked-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+[wml: Backported to 3.4:
+- Adjust context
+- one more flag QUIRK_NO_PCH_PWM_ENABLE]
+Signed-off-by: Weng Meiling <wengmeiling.weng@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ Documentation/kernel-parameters.txt | 17 +++++++++++------
+ drivers/gpu/drm/i915/i915_drv.h | 3 ++-
+ drivers/gpu/drm/i915/intel_display.c | 9 +++++++++
+ drivers/gpu/drm/i915/intel_panel.c | 15 +++++++++++----
+ 4 files changed, 33 insertions(+), 11 deletions(-)
+
+--- a/Documentation/kernel-parameters.txt
++++ b/Documentation/kernel-parameters.txt
+@@ -993,14 +993,19 @@ bytes respectively. Such letter suffixes
+ i8k.restricted [HW] Allow controlling fans only if SYS_ADMIN
+ capability is set.
+
+- i915.invert_brightness
++ i915.invert_brightness=
+ [DRM] Invert the sense of the variable that is used to
+ set the brightness of the panel backlight. Normally a
+- value of 0 indicates backlight switched off, and the
+- maximum value sets the backlight to maximum brightness.
+- If this parameter is specified, a value of 0 sets the
+- backlight to maximum brightness, and the maximum value
+- switches the backlight off.
++ brightness value of 0 indicates backlight switched off,
++ and the maximum of the brightness value sets the backlight
++ to maximum brightness. If this parameter is set to 0
++ (default) and the machine requires it, or this parameter
++ is set to 1, a brightness value of 0 sets the backlight
++ to maximum brightness, and the maximum of the brightness
++ value switches the backlight off.
++ -1 -- never invert brightness
++ 0 -- machine default
++ 1 -- force brightness inversion
+
+ icn= [HW,ISDN]
+ Format: <io>[,<membase>[,<icn_id>[,<icn_id2>]]]
+--- a/drivers/gpu/drm/i915/i915_drv.h
++++ b/drivers/gpu/drm/i915/i915_drv.h
+@@ -296,7 +296,8 @@ enum intel_pch {
+
+ #define QUIRK_PIPEA_FORCE (1<<0)
+ #define QUIRK_LVDS_SSC_DISABLE (1<<1)
+-#define QUIRK_NO_PCH_PWM_ENABLE (1<<2)
++#define QUIRK_INVERT_BRIGHTNESS (1<<2)
++#define QUIRK_NO_PCH_PWM_ENABLE (1<<3)
+
+ struct intel_fbdev;
+ struct intel_fbc_work;
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -9200,6 +9200,15 @@ static void quirk_no_pcm_pwm_enable(stru
+ DRM_INFO("applying no-PCH_PWM_ENABLE quirk\n");
+ }
+
++/*
++ * A machine may need to invert the panel backlight brightness value
++ */
++static void quirk_invert_brightness(struct drm_device *dev)
++{
++ struct drm_i915_private *dev_priv = dev->dev_private;
++ dev_priv->quirks |= QUIRK_INVERT_BRIGHTNESS;
++}
++
+ struct intel_quirk {
+ int device;
+ int subsystem_vendor;
+--- a/drivers/gpu/drm/i915/intel_panel.c
++++ b/drivers/gpu/drm/i915/intel_panel.c
+@@ -190,15 +190,22 @@ u32 intel_panel_get_max_backlight(struct
+ return max;
+ }
+
+-static bool i915_panel_invert_brightness;
+-MODULE_PARM_DESC(invert_brightness, "Invert backlight brightness, please "
++static int i915_panel_invert_brightness;
++MODULE_PARM_DESC(invert_brightness, "Invert backlight brightness "
++ "(-1 force normal, 0 machine defaults, 1 force inversion), please "
+ "report PCI device ID, subsystem vendor and subsystem device ID "
+ "to dri-devel@lists.freedesktop.org, if your machine needs it. "
+ "It will then be included in an upcoming module version.");
+-module_param_named(invert_brightness, i915_panel_invert_brightness, bool, 0600);
++module_param_named(invert_brightness, i915_panel_invert_brightness, int, 0600);
+ static u32 intel_panel_compute_brightness(struct drm_device *dev, u32 val)
+ {
+- if (i915_panel_invert_brightness)
++ struct drm_i915_private *dev_priv = dev->dev_private;
++
++ if (i915_panel_invert_brightness < 0)
++ return val;
++
++ if (i915_panel_invert_brightness > 0 ||
++ dev_priv->quirks & QUIRK_INVERT_BRIGHTNESS)
+ return intel_panel_get_max_backlight(dev) - val;
+
+ return val;
drm-i915-dump-uts_release-into-the-error_state.patch
drm-i915-add-missing-n-to-uts_release-in-the-error_state.patch
drm-i915-panel-invert-brightness-via-parameter.patch
+drm-i915-panel-invert-brightness-via-quirk.patch
+drm-i915-panel-invert-brightness-acer-aspire-5734z.patch
+drm-i915-add-quirk-to-invert-brightness-on-emachines-g725.patch
+drm-i915-add-quirk-to-invert-brightness-on-emachines-e725.patch
+drm-i915-add-quirk-to-invert-brightness-on-packard-bell-ncl20.patch