diff options
-rw-r--r-- | drivers/misc/acer-wmi.c | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/drivers/misc/acer-wmi.c b/drivers/misc/acer-wmi.c index dd13a3749927..b82ff25a7b54 100644 --- a/drivers/misc/acer-wmi.c +++ b/drivers/misc/acer-wmi.c | |||
@@ -174,7 +174,7 @@ static struct wmi_interface *interface; | |||
174 | struct quirk_entry { | 174 | struct quirk_entry { |
175 | u8 wireless; | 175 | u8 wireless; |
176 | u8 mailled; | 176 | u8 mailled; |
177 | u8 brightness; | 177 | s8 brightness; |
178 | u8 bluetooth; | 178 | u8 bluetooth; |
179 | }; | 179 | }; |
180 | 180 | ||
@@ -198,6 +198,10 @@ static int dmi_matched(const struct dmi_system_id *dmi) | |||
198 | static struct quirk_entry quirk_unknown = { | 198 | static struct quirk_entry quirk_unknown = { |
199 | }; | 199 | }; |
200 | 200 | ||
201 | static struct quirk_entry quirk_acer_aspire_1520 = { | ||
202 | .brightness = -1, | ||
203 | }; | ||
204 | |||
201 | static struct quirk_entry quirk_acer_travelmate_2490 = { | 205 | static struct quirk_entry quirk_acer_travelmate_2490 = { |
202 | .mailled = 1, | 206 | .mailled = 1, |
203 | }; | 207 | }; |
@@ -210,6 +214,24 @@ static struct quirk_entry quirk_medion_md_98300 = { | |||
210 | static struct dmi_system_id acer_quirks[] = { | 214 | static struct dmi_system_id acer_quirks[] = { |
211 | { | 215 | { |
212 | .callback = dmi_matched, | 216 | .callback = dmi_matched, |
217 | .ident = "Acer Aspire 1360", | ||
218 | .matches = { | ||
219 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
220 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1360"), | ||
221 | }, | ||
222 | .driver_data = &quirk_acer_aspire_1520, | ||
223 | }, | ||
224 | { | ||
225 | .callback = dmi_matched, | ||
226 | .ident = "Acer Aspire 1520", | ||
227 | .matches = { | ||
228 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
229 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1520"), | ||
230 | }, | ||
231 | .driver_data = &quirk_acer_aspire_1520, | ||
232 | }, | ||
233 | { | ||
234 | .callback = dmi_matched, | ||
213 | .ident = "Acer Aspire 3100", | 235 | .ident = "Acer Aspire 3100", |
214 | .matches = { | 236 | .matches = { |
215 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | 237 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), |
@@ -552,7 +574,8 @@ static acpi_status AMW0_set_capabilities(void) | |||
552 | * appear to use the same EC register for brightness, even if they | 574 | * appear to use the same EC register for brightness, even if they |
553 | * differ for wireless, etc | 575 | * differ for wireless, etc |
554 | */ | 576 | */ |
555 | interface->capability |= ACER_CAP_BRIGHTNESS; | 577 | if (quirks->brightness >= 0) |
578 | interface->capability |= ACER_CAP_BRIGHTNESS; | ||
556 | 579 | ||
557 | return AE_OK; | 580 | return AE_OK; |
558 | } | 581 | } |
@@ -1059,6 +1082,8 @@ static int __init acer_wmi_init(void) | |||
1059 | printk(ACER_INFO "Acer Laptop ACPI-WMI Extras version %s\n", | 1082 | printk(ACER_INFO "Acer Laptop ACPI-WMI Extras version %s\n", |
1060 | ACER_WMI_VERSION); | 1083 | ACER_WMI_VERSION); |
1061 | 1084 | ||
1085 | find_quirks(); | ||
1086 | |||
1062 | /* | 1087 | /* |
1063 | * Detect which ACPI-WMI interface we're using. | 1088 | * Detect which ACPI-WMI interface we're using. |
1064 | */ | 1089 | */ |
@@ -1092,8 +1117,6 @@ static int __init acer_wmi_init(void) | |||
1092 | if (wmi_has_guid(AMW0_GUID1)) | 1117 | if (wmi_has_guid(AMW0_GUID1)) |
1093 | AMW0_find_mailled(); | 1118 | AMW0_find_mailled(); |
1094 | 1119 | ||
1095 | find_quirks(); | ||
1096 | |||
1097 | if (!interface) { | 1120 | if (!interface) { |
1098 | printk(ACER_ERR "No or unsupported WMI interface, unable to " | 1121 | printk(ACER_ERR "No or unsupported WMI interface, unable to " |
1099 | "load\n"); | 1122 | "load\n"); |