Bugzilla: 1097436 Upstream-status: Sent upstream for 3.16 From f6fad201a0e4584e9826a2deb8ebbfccdb8cb13b Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 2 Jun 2014 17:41:01 +0200 Subject: [PATCH 04/14] asus-wmi: Add a no backlight quirk Some Asus motherboards for desktop PC-s export an acpi-video and an asus-wmi interface advertising backlight support. Add a quirk to allow to blacklist these so that desktop environments such as gnome don't start showing nonsense brightness controls. https://bugzilla.redhat.com/show_bug.cgi?id=1097436 Signed-off-by: Hans de Goede --- drivers/platform/x86/asus-wmi.c | 8 ++++++-- drivers/platform/x86/asus-wmi.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c index c5e082fb82fa..6f73dc5125ca 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -1272,6 +1272,9 @@ static int asus_wmi_backlight_init(struct asus_wmi *asus) int max; int power; + if (asus->driver->quirks->no_backlight) + return -ENODEV; + max = read_brightness_max(asus); if (max == -ENODEV) @@ -1370,7 +1373,7 @@ static void asus_wmi_notify(u32 value, void *context) code = ASUS_WMI_BRN_DOWN; if (code == ASUS_WMI_BRN_DOWN || code == ASUS_WMI_BRN_UP) { - if (!acpi_video_backlight_support()) { + if (asus->backlight_device) { asus_wmi_backlight_notify(asus, orig_code); goto exit; } @@ -1773,7 +1776,8 @@ static int asus_wmi_add(struct platform_device *pdev) if (err) goto fail_rfkill; - if (asus->driver->quirks->wmi_backlight_power) + if (asus->driver->quirks->wmi_backlight_power || + asus->driver->quirks->no_backlight) acpi_video_dmi_promote_vendor(); if (!acpi_video_backlight_support()) { pr_info("Disabling ACPI video driver\n"); diff --git a/drivers/platform/x86/asus-wmi.h b/drivers/platform/x86/asus-wmi.h index 4da4c8bafe70..cc47efe14974 100644 --- a/drivers/platform/x86/asus-wmi.h +++ b/drivers/platform/x86/asus-wmi.h @@ -42,6 +42,7 @@ struct quirk_entry { bool scalar_panel_brightness; bool store_backlight_power; bool wmi_backlight_power; + bool no_backlight; int wapf; /* * For machines with AMD graphic chips, it will send out WMI event -- 1.9.0