aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/acer-wmi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc/acer-wmi.c')
-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 dd13a3749927..b82ff25a7b54 100644
--- a/drivers/misc/acer-wmi.c
+++ b/drivers/misc/acer-wmi.c
@@ -174,7 +174,7 @@ static struct wmi_interface *interface;
174struct quirk_entry { 174struct 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)
198static struct quirk_entry quirk_unknown = { 198static struct quirk_entry quirk_unknown = {
199}; 199};
200 200
201static struct quirk_entry quirk_acer_aspire_1520 = {
202 .brightness = -1,
203};
204
201static struct quirk_entry quirk_acer_travelmate_2490 = { 205static 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 = {
210static struct dmi_system_id acer_quirks[] = { 214static 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");