[x86] i915: Invert backlight brightness control for various models
...including Packard Bell NCL20 (Closes: #627372) Also allow this behaviour to be enabled via module parameter invert_brightness=1 svn path=/dists/sid/linux/; revision=19783
This commit is contained in:
parent
91fdb9572b
commit
3c75fbe8be
|
@ -103,6 +103,10 @@ linux (3.2.37-1) UNRELEASED; urgency=low
|
|||
* net: Add alx driver for Atheros AR8161 and AR8162 (Closes: #699129)
|
||||
- Mark as staging, since it has not been accepted upstream
|
||||
* [armel/kirkwood] rtc-s35390a: add wakealarm support (Closes: #693997)
|
||||
* [x86] i915: Invert backlight brightness control for various models
|
||||
including Packard Bell NCL20 (Closes: #627372)
|
||||
- Also allow this behaviour to be enabled via module parameter
|
||||
invert_brightness=1
|
||||
|
||||
[ Aurelien Jarno ]
|
||||
* [armhf/vexpress] Add kernel udebs.
|
||||
|
|
26
debian/patches/bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-emachines-e725.patch
vendored
Normal file
26
debian/patches/bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-emachines-e725.patch
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
From: Jani Nikula <jani.nikula@intel.com>
|
||||
Date: Tue, 22 Jan 2013 10:50:35 +0000
|
||||
Subject: drm/i915: add quirk to invert brightness on eMachines e725
|
||||
|
||||
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>
|
||||
---
|
||||
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
|
||||
index 44f9d8f..8575a62 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_display.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_display.c
|
||||
@@ -8602,6 +8602,9 @@ static struct intel_quirk intel_quirks[] = {
|
||||
|
||||
/* Acer/eMachines G725 */
|
||||
{ 0x2a42, 0x1025, 0x0210, quirk_invert_brightness },
|
||||
+
|
||||
+ /* Acer/eMachines e725 */
|
||||
+ { 0x2a42, 0x1025, 0x0212, quirk_invert_brightness },
|
||||
};
|
||||
|
||||
static void intel_init_quirks(struct drm_device *dev)
|
25
debian/patches/bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-emachines-g725.patch
vendored
Normal file
25
debian/patches/bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-emachines-g725.patch
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
From: Jani Nikula <jani.nikula@intel.com>
|
||||
Date: Tue, 22 Jan 2013 10:50:34 +0000
|
||||
Subject: drm/i915: add quirk to invert brightness on eMachines G725
|
||||
|
||||
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>
|
||||
---
|
||||
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
|
||||
index 7725446..44f9d8f 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_display.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_display.c
|
||||
@@ -8599,6 +8599,9 @@ static 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 },
|
||||
};
|
||||
|
||||
static void intel_init_quirks(struct drm_device *dev)
|
25
debian/patches/bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-packard-bell-ncl20.patch
vendored
Normal file
25
debian/patches/bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-packard-bell-ncl20.patch
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
From: Jani Nikula <jani.nikula@intel.com>
|
||||
Date: Tue, 22 Jan 2013 10:50:36 +0000
|
||||
Subject: drm/i915: add quirk to invert brightness on Packard Bell NCL20
|
||||
|
||||
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>
|
||||
---
|
||||
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
|
||||
index 8575a62..7262786 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_display.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_display.c
|
||||
@@ -8605,6 +8605,9 @@ static struct intel_quirk intel_quirks[] = {
|
||||
|
||||
/* Acer/eMachines e725 */
|
||||
{ 0x2a42, 0x1025, 0x0212, quirk_invert_brightness },
|
||||
+
|
||||
+ /* Acer/Packard Bell NCL20 */
|
||||
+ { 0x2a42, 0x1025, 0x034b, quirk_invert_brightness },
|
||||
};
|
||||
|
||||
static void intel_init_quirks(struct drm_device *dev)
|
77
debian/patches/bugfix/x86/drm-i915-add-quirk_invert_brightness-for-ncr-machine.patch
vendored
Normal file
77
debian/patches/bugfix/x86/drm-i915-add-quirk_invert_brightness-for-ncr-machine.patch
vendored
Normal file
|
@ -0,0 +1,77 @@
|
|||
From: Egbert Eich <eich@suse.de>
|
||||
Date: Sun, 14 Oct 2012 15:46:38 +0200
|
||||
Subject: DRM/i915: Add QUIRK_INVERT_BRIGHTNESS for NCR machines.
|
||||
|
||||
commit 5f85f176c2f1c9d2a23f60ca0b99e4d0aa5a26a7 upstream.
|
||||
|
||||
NCR machines with LVDS panels using Intel chipsets need to have the
|
||||
QUIRK_INVERT_BRIGHTNESS bit set.
|
||||
Unfortunately NCR doesn't set a meaningful subvendor/subdevice ID,
|
||||
therefore we add a DMI dependent quirk list.
|
||||
|
||||
Signed-off-by: Egbert Eich <eich@suse.de>
|
||||
[danvet: fixup whitespace fail.]
|
||||
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
||||
[bwh: Backported to 3.2:
|
||||
- Adjust context
|
||||
- Add #include <linux/dmi.h>]
|
||||
---
|
||||
drivers/gpu/drm/i915/intel_display.c | 32 ++++++++++++++++++++++++++++++++
|
||||
1 file changed, 32 insertions(+)
|
||||
|
||||
--- a/drivers/gpu/drm/i915/intel_display.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_display.c
|
||||
@@ -25,6 +25,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/cpufreq.h>
|
||||
+#include <linux/dmi.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/i2c.h>
|
||||
@@ -8839,6 +8840,34 @@ struct intel_quirk {
|
||||
void (*hook)(struct drm_device *dev);
|
||||
};
|
||||
|
||||
+/* For systems that don't have a meaningful PCI subdevice/subvendor ID */
|
||||
+struct intel_dmi_quirk {
|
||||
+ void (*hook)(struct drm_device *dev);
|
||||
+ const struct dmi_system_id (*dmi_id_list)[];
|
||||
+};
|
||||
+
|
||||
+static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
|
||||
+{
|
||||
+ DRM_INFO("Backlight polarity reversed on %s\n", id->ident);
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static const struct intel_dmi_quirk intel_dmi_quirks[] = {
|
||||
+ {
|
||||
+ .dmi_id_list = &(const struct dmi_system_id[]) {
|
||||
+ {
|
||||
+ .callback = intel_dmi_reverse_brightness,
|
||||
+ .ident = "NCR Corporation",
|
||||
+ .matches = {DMI_MATCH(DMI_SYS_VENDOR, "NCR Corporation"),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, ""),
|
||||
+ },
|
||||
+ },
|
||||
+ { } /* terminating entry */
|
||||
+ },
|
||||
+ .hook = quirk_invert_brightness,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
struct intel_quirk intel_quirks[] = {
|
||||
/* HP Compaq 2730p needs pipe A force quirk (LP: #291555) */
|
||||
{ 0x2a42, 0x103c, 0x30eb, quirk_pipea_force },
|
||||
@@ -8886,6 +8915,10 @@ static void intel_init_quirks(struct drm
|
||||
q->subsystem_device == PCI_ANY_ID))
|
||||
q->hook(dev);
|
||||
}
|
||||
+ for (i = 0; i < ARRAY_SIZE(intel_dmi_quirks); i++) {
|
||||
+ if (dmi_check_system(*intel_dmi_quirks[i].dmi_id_list) != 0)
|
||||
+ intel_dmi_quirks[i].hook(dev);
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Disable the VGA plane that we never use */
|
41
debian/patches/bugfix/x86/drm-i915-panel-invert-brightness-acer-aspire-5734z.patch
vendored
Normal file
41
debian/patches/bugfix/x86/drm-i915-panel-invert-brightness-acer-aspire-5734z.patch
vendored
Normal file
|
@ -0,0 +1,41 @@
|
|||
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>
|
||||
---
|
||||
drivers/gpu/drm/i915/intel_display.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
|
||||
index 92208f8..683002fb 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_display.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_display.c
|
||||
@@ -9021,7 +9021,8 @@ static void quirk_ssc_force_disable(struct drm_device *dev)
|
||||
}
|
||||
|
||||
/*
|
||||
- * 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)
|
||||
{
|
||||
@@ -9061,6 +9062,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 },
|
||||
};
|
||||
|
||||
static void intel_init_quirks(struct drm_device *dev)
|
98
debian/patches/bugfix/x86/drm-i915-panel-invert-brightness-via-parameter.patch
vendored
Normal file
98
debian/patches/bugfix/x86/drm-i915-panel-invert-brightness-via-parameter.patch
vendored
Normal file
|
@ -0,0 +1,98 @@
|
|||
From: Carsten Emde <C.Emde@osadl.org>
|
||||
Date: Thu, 15 Mar 2012 15:56:25 +0100
|
||||
Subject: drm/i915: panel: invert brightness via parameter
|
||||
|
||||
commit 7bd90909bbf9ce7c40e1da3d72b97b93839c188a upstream.
|
||||
|
||||
Following the documentation of the Legacy Backlight Brightness (LBB)
|
||||
Register in the configuration space of some Intel PCI graphics adapters,
|
||||
setting the LBB register with the value 0x0 causes the backlight to be
|
||||
turned off, and 0xFF causes the backlight to be set to 100% intensity
|
||||
(http://download.intel.com/embedded/processors/Whitepaper/324567.pdf).
|
||||
The Acer Aspire 5734Z, however, turns the backlight off at 0xFF and sets
|
||||
it to maximum intensity at 0. In consequence, the screen of this systems
|
||||
becomes dark at an early boot stage which makes it unusable. The same
|
||||
inversion applies to the BLC_PWM_CTL I915 register. This problem was
|
||||
introduced in kernel version 2.6.38 when the PCI device of this system
|
||||
was first supported by the i915 KMS module.
|
||||
|
||||
This patch adds a parameter to the i915 module to enable inversion of
|
||||
the brightness variable (i915.invert_brightness).
|
||||
|
||||
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>
|
||||
---
|
||||
Documentation/kernel-parameters.txt | 9 +++++++++
|
||||
drivers/gpu/drm/i915/intel_panel.c | 17 +++++++++++++++++
|
||||
2 files changed, 26 insertions(+)
|
||||
|
||||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
|
||||
index 033d4e6..9f6ba8f 100644
|
||||
--- a/Documentation/kernel-parameters.txt
|
||||
+++ b/Documentation/kernel-parameters.txt
|
||||
@@ -967,6 +967,15 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
i8k.restricted [HW] Allow controlling fans only if SYS_ADMIN
|
||||
capability is set.
|
||||
|
||||
+ 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.
|
||||
+
|
||||
icn= [HW,ISDN]
|
||||
Format: <io>[,<membase>[,<icn_id>[,<icn_id2>]]]
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
|
||||
index 230a141..c4b3f34 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_panel.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_panel.c
|
||||
@@ -28,6 +28,7 @@
|
||||
* Chris Wilson <chris@chris-wilson.co.uk>
|
||||
*/
|
||||
|
||||
+#include <linux/moduleparam.h>
|
||||
#include "intel_drv.h"
|
||||
|
||||
#define PCI_LBPC 0xf4 /* legacy/combination backlight modes */
|
||||
@@ -191,6 +192,20 @@ u32 intel_panel_get_max_backlight(struct drm_device *dev)
|
||||
return max;
|
||||
}
|
||||
|
||||
+static bool i915_panel_invert_brightness;
|
||||
+MODULE_PARM_DESC(invert_brightness, "Invert backlight brightness, 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);
|
||||
+static u32 intel_panel_compute_brightness(struct drm_device *dev, u32 val)
|
||||
+{
|
||||
+ if (i915_panel_invert_brightness)
|
||||
+ return intel_panel_get_max_backlight(dev) - val;
|
||||
+
|
||||
+ return val;
|
||||
+}
|
||||
+
|
||||
u32 intel_panel_get_backlight(struct drm_device *dev)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = dev->dev_private;
|
||||
@@ -211,6 +226,7 @@ u32 intel_panel_get_backlight(struct drm_device *dev)
|
||||
}
|
||||
}
|
||||
|
||||
+ val = intel_panel_compute_brightness(dev, val);
|
||||
DRM_DEBUG_DRIVER("get backlight PWM = %d\n", val);
|
||||
return val;
|
||||
}
|
||||
@@ -228,6 +244,7 @@ static void intel_panel_actually_set_backlight(struct drm_device *dev, u32 level
|
||||
u32 tmp;
|
||||
|
||||
DRM_DEBUG_DRIVER("set backlight PWM = %d\n", level);
|
||||
+ level = intel_panel_compute_brightness(dev, level);
|
||||
|
||||
if (HAS_PCH_SPLIT(dev))
|
||||
return intel_pch_panel_set_backlight(dev, level);
|
|
@ -0,0 +1,112 @@
|
|||
From: Carsten Emde <C.Emde@osadl.org>
|
||||
Date: Thu, 15 Mar 2012 15:56:26 +0100
|
||||
Subject: drm/i915: panel: invert brightness via quirk
|
||||
|
||||
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>
|
||||
---
|
||||
Documentation/kernel-parameters.txt | 17 +++++++++++------
|
||||
drivers/gpu/drm/i915/i915_drv.h | 1 +
|
||||
drivers/gpu/drm/i915/intel_display.c | 9 +++++++++
|
||||
drivers/gpu/drm/i915/intel_panel.c | 15 +++++++++++----
|
||||
4 files changed, 32 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
|
||||
index 9f6ba8f..da44999 100644
|
||||
--- a/Documentation/kernel-parameters.txt
|
||||
+++ b/Documentation/kernel-parameters.txt
|
||||
@@ -967,14 +967,19 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
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>]]]
|
||||
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
|
||||
index c0f19f5..e7a00b7 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_drv.h
|
||||
+++ b/drivers/gpu/drm/i915/i915_drv.h
|
||||
@@ -295,6 +295,7 @@ enum intel_pch {
|
||||
|
||||
#define QUIRK_PIPEA_FORCE (1<<0)
|
||||
#define QUIRK_LVDS_SSC_DISABLE (1<<1)
|
||||
+#define QUIRK_INVERT_BRIGHTNESS (1<<2)
|
||||
|
||||
struct intel_fbdev;
|
||||
struct intel_fbc_work;
|
||||
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
|
||||
index 615b397..92208f8 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_display.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_display.c
|
||||
@@ -9020,6 +9020,15 @@ static void quirk_ssc_force_disable(struct drm_device *dev)
|
||||
dev_priv->quirks |= QUIRK_LVDS_SSC_DISABLE;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * 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;
|
||||
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
|
||||
index c4b3f34..7998ca6 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_panel.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_panel.c
|
||||
@@ -192,15 +192,22 @@ u32 intel_panel_get_max_backlight(struct drm_device *dev)
|
||||
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;
|
|
@ -482,3 +482,10 @@ features/all/alx/alx-add-new-QCA-ethernet-driver-which-supercedes-atl.patch
|
|||
features/all/alx/remove-atl1c-devices-from-alx.patch
|
||||
features/all/alx/mark-as-staging.patch
|
||||
features/arm/rtc-s35390a-wakealarm.patch
|
||||
bugfix/x86/drm-i915-panel-invert-brightness-via-parameter.patch
|
||||
bugfix/x86/drm-i915-panel-invert-brightness-via-quirk.patch
|
||||
bugfix/x86/drm-i915-panel-invert-brightness-acer-aspire-5734z.patch
|
||||
bugfix/x86/drm-i915-add-quirk_invert_brightness-for-ncr-machine.patch
|
||||
bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-emachines-g725.patch
|
||||
bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-emachines-e725.patch
|
||||
bugfix/x86/drm-i915-add-quirk-to-invert-brightness-on-packard-bell-ncl20.patch
|
||||
|
|
Loading…
Reference in New Issue