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