diff options
author | Carlos Corbacho <carlos@strangeworlds.co.uk> | 2008-06-21 04:09:22 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2008-07-16 17:27:02 -0400 |
commit | 9991d9f2bc75dc8735932240b67432d4073b8f60 (patch) | |
tree | a7b1686537eb53eeef738a2020d429ce6cf4bccf | |
parent | a0bbaf83311cd995136c9047f174d79c1075ee2d (diff) |
acer-wmi: Blacklist backlight on Acer Aspire 1520 & 1360 series
A newer BIOS for these laptops adds ACPI-WMI support to them. However, it does
not add support for the backlight via the EC, and we have no way to detect
this on older machines, so blacklist it from them.
Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
-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"); |