summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/misc/acer-wmi.c31
1 files changed, 27 insertions, 4 deletions
diff --git a/drivers/misc/acer-wmi.c b/drivers/misc/acer-wmi.c
index dd13a374992..b82ff25a7b5 100644
--- a/drivers/misc/acer-wmi.c
+++ b/drivers/misc/acer-wmi.c
@@ -174,7 +174,7 @@ static struct wmi_interface *interface;
struct quirk_entry {
u8 wireless;
u8 mailled;
- u8 brightness;
+ s8 brightness;
u8 bluetooth;
};
@@ -198,6 +198,10 @@ static int dmi_matched(const struct dmi_system_id *dmi)
static struct quirk_entry quirk_unknown = {
};
+static struct quirk_entry quirk_acer_aspire_1520 = {
+ .brightness = -1,
+};
+
static struct quirk_entry quirk_acer_travelmate_2490 = {
.mailled = 1,
};
@@ -210,6 +214,24 @@ static struct quirk_entry quirk_medion_md_98300 = {
static struct dmi_system_id acer_quirks[] = {
{
.callback = dmi_matched,
+ .ident = "Acer Aspire 1360",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1360"),
+ },
+ .driver_data = &quirk_acer_aspire_1520,
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Acer Aspire 1520",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1520"),
+ },
+ .driver_data = &quirk_acer_aspire_1520,
+ },
+ {
+ .callback = dmi_matched,
.ident = "Acer Aspire 3100",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
@@ -552,7 +574,8 @@ static acpi_status AMW0_set_capabilities(void)
* appear to use the same EC register for brightness, even if they
* differ for wireless, etc
*/
- interface->capability |= ACER_CAP_BRIGHTNESS;
+ if (quirks->brightness >= 0)
+ interface->capability |= ACER_CAP_BRIGHTNESS;
return AE_OK;
}
@@ -1059,6 +1082,8 @@ static int __init acer_wmi_init(void)
printk(ACER_INFO "Acer Laptop ACPI-WMI Extras version %s\n",
ACER_WMI_VERSION);
+ find_quirks();
+
/*
* Detect which ACPI-WMI interface we're using.
*/
@@ -1092,8 +1117,6 @@ static int __init acer_wmi_init(void)
if (wmi_has_guid(AMW0_GUID1))
AMW0_find_mailled();
- find_quirks();
-
if (!interface) {
printk(ACER_ERR "No or unsupported WMI interface, unable to "
"load\n");