c89e5c5
From: Hans de Goede <hdegoede@redhat.com>
c89e5c5
Date: Tue, 3 Mar 2015 08:31:24 +0100
c89e5c5
Subject: [PATCH] acpi: video: Add force native backlight quirk for Lenovo
c89e5c5
 Ideapad Z570
c89e5c5
c89e5c5
The Lenovo Ideapad Z570 (which is an Acer in disguise like some other Ideapads)
c89e5c5
has a broken acpi_video interface, this was fixed in commmit a11d342fb8
c89e5c5
("ACPI / video: force vendor backlight on Lenovo Ideapad Z570").
c89e5c5
c89e5c5
Which stops acpi_video from registering a backlight interface, but this is
c89e5c5
only a partial fix, because for people who have the ideapad-laptop module
c89e5c5
installed that module will now register a backlight interface, which also
c89e5c5
does not work, so we need to use the native intel_backlight interface.
c89e5c5
c89e5c5
The Lenovo Ideapad 570 is a pre-win8 laptop / too old for the acpi-video code
c89e5c5
to automatically prefer the native backlight interface, so add a quirk for it.
c89e5c5
c89e5c5
This commit also removes the previous incomplete fix.
c89e5c5
c89e5c5
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1187004
c89e5c5
Cc: Stepan Bujnak <stepanbujnak@fastmail.fm>
c89e5c5
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
c89e5c5
---
c89e5c5
 drivers/acpi/video.c        | 17 +++++++++++++++++
c89e5c5
 drivers/acpi/video_detect.c |  8 --------
c89e5c5
 2 files changed, 17 insertions(+), 8 deletions(-)
c89e5c5
c89e5c5
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
c89e5c5
index 2f1f16df460c..16d744e4552f 100644
c89e5c5
--- a/drivers/acpi/video.c
c89e5c5
+++ b/drivers/acpi/video.c
c89e5c5
@@ -425,6 +425,12 @@ static int __init video_disable_native_backlight(const struct dmi_system_id *d)
c89e5c5
 	return 0;
c89e5c5
 }
c89e5c5
 
c89e5c5
+static int __init video_enable_native_backlight(const struct dmi_system_id *d)
c89e5c5
+{
c89e5c5
+	use_native_backlight_dmi = NATIVE_BACKLIGHT_ON;
c89e5c5
+	return 0;
c89e5c5
+}
c89e5c5
+
c89e5c5
 static struct dmi_system_id video_dmi_table[] __initdata = {
c89e5c5
 	/*
c89e5c5
 	 * Broken _BQC workaround http://bugzilla.kernel.org/show_bug.cgi?id=13121
c89e5c5
@@ -556,6 +562,17 @@ static struct dmi_system_id video_dmi_table[] __initdata = {
c89e5c5
 		DMI_MATCH(DMI_PRODUCT_NAME, "XPS L521X"),
c89e5c5
 		},
c89e5c5
 	},
c89e5c5
+
c89e5c5
+	/* Non win8 machines which need native backlight nevertheless */
c89e5c5
+	{
c89e5c5
+	 /* https://bugzilla.redhat.com/show_bug.cgi?id=1187004 */
c89e5c5
+	 .callback = video_enable_native_backlight,
c89e5c5
+	 .ident = "Lenovo Ideapad Z570",
c89e5c5
+	 .matches = {
c89e5c5
+		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
c89e5c5
+		DMI_MATCH(DMI_PRODUCT_NAME, "102434U"),
c89e5c5
+		},
c89e5c5
+	},
c89e5c5
 	{}
c89e5c5
 };
c89e5c5
 
c89e5c5
diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
c89e5c5
index 27c43499977a..c42feb2bacd0 100644
c89e5c5
--- a/drivers/acpi/video_detect.c
c89e5c5
+++ b/drivers/acpi/video_detect.c
c89e5c5
@@ -174,14 +174,6 @@ static struct dmi_system_id video_detect_dmi_table[] = {
c89e5c5
 		DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 5737"),
c89e5c5
 		},
c89e5c5
 	},
c89e5c5
-	{
c89e5c5
-	.callback = video_detect_force_vendor,
c89e5c5
-	.ident = "Lenovo IdeaPad Z570",
c89e5c5
-	.matches = {
c89e5c5
-		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
c89e5c5
-		DMI_MATCH(DMI_PRODUCT_VERSION, "Ideapad Z570"),
c89e5c5
-		},
c89e5c5
-	},
c89e5c5
 	{ },
c89e5c5
 };
c89e5c5
 
c89e5c5
-- 
c89e5c5
2.1.0
c89e5c5