summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Boyer <jwboyer@fedoraproject.org>2015-01-12 09:09:01 -0500
committerJosh Boyer <jwboyer@fedoraproject.org>2015-01-12 09:09:04 -0500
commit5ef0eabc68a877321b20f94cd63efa16cc2350da (patch)
tree274eb73a8bb008ed0121a36e1755c13f2905ffad
parent0802f28ee43d5bfead8c5ed3e81c0c420235cb97 (diff)
downloadkernel-5ef0eabc68a877321b20f94cd63efa16cc2350da.tar.gz
kernel-5ef0eabc68a877321b20f94cd63efa16cc2350da.tar.xz
kernel-5ef0eabc68a877321b20f94cd63efa16cc2350da.zip
Backlight fixes for Samsung and Dell machines (rhbz 1094948 1115713 1163574)
-rw-r--r--acpi-video-Add-disable_native_backlight-quirk-for-De.patch38
-rw-r--r--acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch38
-rw-r--r--kernel.spec15
-rw-r--r--samsung-laptop-Add-use_native_backlight-quirk-and-en.patch107
4 files changed, 198 insertions, 0 deletions
diff --git a/acpi-video-Add-disable_native_backlight-quirk-for-De.patch b/acpi-video-Add-disable_native_backlight-quirk-for-De.patch
new file mode 100644
index 00000000..6e7ca6e0
--- /dev/null
+++ b/acpi-video-Add-disable_native_backlight-quirk-for-De.patch
@@ -0,0 +1,38 @@
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 21 Nov 2014 13:39:19 +0100
+Subject: [PATCH] acpi-video: Add disable_native_backlight quirk for Dell XPS15
+ L521X
+
+The L521X variant of the Dell XPS15 has integrated nvidia graphics, and
+backlight control does not work properly when using the native interfaces.
+
+BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1163574
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/acpi/video.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
+index a3d293806f96..e109b2cfb5b3 100644
+--- a/drivers/acpi/video.c
++++ b/drivers/acpi/video.c
+@@ -769,6 +769,16 @@ static struct dmi_system_id video_dmi_table[] __initdata = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP ENVY 15 Notebook PC"),
+ },
+ },
++
++ {
++ /* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */
++ .callback = video_disable_native_backlight,
++ .ident = "Dell XPS15 L521X",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "XPS L521X"),
++ },
++ },
+ {}
+ };
+
+--
+2.1.0
+
diff --git a/acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch b/acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
new file mode 100644
index 00000000..79e0b7ea
--- /dev/null
+++ b/acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
@@ -0,0 +1,38 @@
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 9 Jan 2015 15:28:29 +0100
+Subject: [PATCH] acpi-video: Add disable_native_backlight quirk for Samsung
+ 730U3E/740U3E
+
+The Samsung 730U3E/740U3E has integrated ATI Radeon graphics, and backlight
+control does not work properly when using the native interfaces.
+
+BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1094948
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/acpi/video.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
+index e109b2cfb5b3..a8b7ee312493 100644
+--- a/drivers/acpi/video.c
++++ b/drivers/acpi/video.c
+@@ -769,7 +769,15 @@ static struct dmi_system_id video_dmi_table[] __initdata = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP ENVY 15 Notebook PC"),
+ },
+ },
+-
++ {
++ /* https://bugzilla.redhat.com/show_bug.cgi?id=1094948 */
++ .callback = video_disable_native_backlight,
++ .ident = "SAMSUNG 730U3E/740U3E",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "730U3E/740U3E"),
++ },
++ },
+ {
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */
+ .callback = video_disable_native_backlight,
+--
+2.1.0
+
diff --git a/kernel.spec b/kernel.spec
index d72af86b..0f84dc59 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -659,6 +659,13 @@ Patch26126: uas-Do-not-blacklist-ASM1153-disk-enclosures.patch
Patch26127: uas-Add-US_FL_NO_ATA_1X-for-2-more-Seagate-disk-encl.patch
Patch26128: uas-Add-no-report-opcodes-quirk-for-Simpletech-devic.patch
+#rhbz 1115713
+Patch26129: samsung-laptop-Add-use_native_backlight-quirk-and-en.patch
+#rhbz 1163574
+Patch26130: acpi-video-Add-disable_native_backlight-quirk-for-De.patch
+#rhbz 1094948
+Patch26131: acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
+
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
Patch30000: kernel-arm64.patch
@@ -1427,6 +1434,13 @@ ApplyPatch uas-Do-not-blacklist-ASM1153-disk-enclosures.patch
ApplyPatch uas-Add-US_FL_NO_ATA_1X-for-2-more-Seagate-disk-encl.patch
ApplyPatch uas-Add-no-report-opcodes-quirk-for-Simpletech-devic.patch
+#rhbz 1115713
+ApplyPatch samsung-laptop-Add-use_native_backlight-quirk-and-en.patch
+#rhbz 1163574
+ApplyPatch acpi-video-Add-disable_native_backlight-quirk-for-De.patch
+#rhbz 1094948
+ApplyPatch acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
+
%if 0%{?aarch64patches}
ApplyPatch kernel-arm64.patch
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
@@ -2302,6 +2316,7 @@ fi
# || ||
%changelog
* Mon Jan 12 2015 Josh Boyer <jwboyer@fedoraproject.org>
+- Backlight fixes for Samsung and Dell machines (rhbz 1094948 1115713 1163574)
- Add various UAS quirks (rhbz 1124119)
- Add patch to fix loop in VDSO (rhbz 1178975)
diff --git a/samsung-laptop-Add-use_native_backlight-quirk-and-en.patch b/samsung-laptop-Add-use_native_backlight-quirk-and-en.patch
new file mode 100644
index 00000000..30f57302
--- /dev/null
+++ b/samsung-laptop-Add-use_native_backlight-quirk-and-en.patch
@@ -0,0 +1,107 @@
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 9 Jan 2015 14:51:21 +0100
+Subject: [PATCH] samsung-laptop: Add use_native_backlight quirk, and enable it
+ on some models
+
+Since kernel 3.14 the backlight control has been broken on various Samsung
+Atom based netbooks. This has been bisected and this problem happens since
+commit b35684b8fa94 ("drm/i915: do full backlight setup at enable time")
+
+This has been reported and discussed in detail here:
+http://lists.freedesktop.org/archives/intel-gfx/2014-July/049395.html
+
+Unfortunately no-one has been able to fix this. This only affects Samsung
+Atom netbooks, and the Linux kernel and the BIOS of those laptops have never
+worked well together. All affected laptops already have a quirk to avoid using
+the standard acpi-video interface and instead use the samsung specific SABI
+interface which samsung-laptop uses. It seems that recent fixes to the i915
+driver have also broken backlight control through the SABI interface.
+
+The intel_backlight driver OTOH works fine, and also allows for finer grained
+backlight control. So add a new use_native_backlight quirk, and replace the
+broken_acpi_video quirk with this quirk for affected models. This new quirk
+disables acpi-video as before and also stops samsung-laptop from registering
+the SABI based samsung_laptop backlight interface, leaving only the working
+intel_backlight interface.
+
+This commit enables this new quirk for 3 models which are known to be affected,
+chances are that it needs to be used on other models too.
+
+BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1094948 # N145P
+BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1115713 # N250P
+Reported-by: Bertrik Sikken <bertrik@sikken.nl> # N150P
+Cc: stable@vger.kernel.org # 3.16
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/platform/x86/samsung-laptop.c | 20 +++++++++++++++++---
+ 1 file changed, 17 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
+index 864290243e46..477de0a9e1ee 100644
+--- a/drivers/platform/x86/samsung-laptop.c
++++ b/drivers/platform/x86/samsung-laptop.c
+@@ -353,6 +353,7 @@ struct samsung_quirks {
+ bool broken_acpi_video;
+ bool four_kbd_backlight_levels;
+ bool enable_kbd_backlight;
++ bool use_native_backlight;
+ };
+
+ static struct samsung_quirks samsung_unknown = {};
+@@ -361,6 +362,10 @@ static struct samsung_quirks samsung_broken_acpi_video = {
+ .broken_acpi_video = true,
+ };
+
++static struct samsung_quirks samsung_use_native_backlight = {
++ .use_native_backlight = true,
++};
++
+ static struct samsung_quirks samsung_np740u3e = {
+ .four_kbd_backlight_levels = true,
+ .enable_kbd_backlight = true,
+@@ -1507,7 +1512,7 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "N150P"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150P"),
+ },
+- .driver_data = &samsung_broken_acpi_video,
++ .driver_data = &samsung_use_native_backlight,
+ },
+ {
+ .callback = samsung_dmi_matched,
+@@ -1517,7 +1522,7 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "N145P/N250P/N260P"),
+ DMI_MATCH(DMI_BOARD_NAME, "N145P/N250P/N260P"),
+ },
+- .driver_data = &samsung_broken_acpi_video,
++ .driver_data = &samsung_use_native_backlight,
+ },
+ {
+ .callback = samsung_dmi_matched,
+@@ -1557,7 +1562,7 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "N250P"),
+ DMI_MATCH(DMI_BOARD_NAME, "N250P"),
+ },
+- .driver_data = &samsung_broken_acpi_video,
++ .driver_data = &samsung_use_native_backlight,
+ },
+ {
+ .callback = samsung_dmi_matched,
+@@ -1626,6 +1631,15 @@ static int __init samsung_init(void)
+ pr_info("Disabling ACPI video driver\n");
+ acpi_video_unregister();
+ }
++
++ if (samsung->quirks->use_native_backlight) {
++ pr_info("Using native backlight driver\n");
++ /* Tell acpi-video to not handle the backlight */
++ acpi_video_dmi_promote_vendor();
++ acpi_video_unregister();
++ /* And also do not handle it ourselves */
++ samsung->handle_backlight = false;
++ }
+ #endif
+
+ ret = samsung_platform_init(samsung);
+--
+2.1.0
+