aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/acer-wmi.c
diff options
context:
space:
mode:
authorCarlos Corbacho <carlos@strangeworlds.co.uk>2008-06-21 04:09:22 -0400
committerAndi Kleen <andi@basil.nowhere.org>2008-07-16 17:27:02 -0400
commit9991d9f2bc75dc8735932240b67432d4073b8f60 (patch)
treea7b1686537eb53eeef738a2020d429ce6cf4bccf /drivers/misc/acer-wmi.c
parenta0bbaf83311cd995136c9047f174d79c1075ee2d (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>
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");