diff options
author | Len Brown <len.brown@intel.com> | 2009-04-05 01:42:03 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-04-05 01:42:03 -0400 |
commit | 07290bed7968c0e08fb3efe193fb148f1fea5e08 (patch) | |
tree | 3c8e8fb5db12dafae3ac7eaedaf33d009950b1b1 /drivers | |
parent | 12648810506eaa063dc23b66514fbb4796f34312 (diff) | |
parent | 4f0175dc13a57cb5d2abef44eb4394b0b964bdad (diff) |
Merge branch 'acer' into release
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/platform/x86/acer-wmi.c | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index a6a42e8c060b..0f6e43bf4fc2 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Acer WMI Laptop Extras | 2 | * Acer WMI Laptop Extras |
3 | * | 3 | * |
4 | * Copyright (C) 2007-2008 Carlos Corbacho <carlos@strangeworlds.co.uk> | 4 | * Copyright (C) 2007-2009 Carlos Corbacho <carlos@strangeworlds.co.uk> |
5 | * | 5 | * |
6 | * Based on acer_acpi: | 6 | * Based on acer_acpi: |
7 | * Copyright (C) 2005-2007 E.M. Smith | 7 | * Copyright (C) 2005-2007 E.M. Smith |
@@ -225,6 +225,25 @@ static struct quirk_entry quirk_fujitsu_amilo_li_1718 = { | |||
225 | .wireless = 2, | 225 | .wireless = 2, |
226 | }; | 226 | }; |
227 | 227 | ||
228 | /* The Aspire One has a dummy ACPI-WMI interface - disable it */ | ||
229 | static struct dmi_system_id __devinitdata acer_blacklist[] = { | ||
230 | { | ||
231 | .ident = "Acer Aspire One (SSD)", | ||
232 | .matches = { | ||
233 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
234 | DMI_MATCH(DMI_PRODUCT_NAME, "AOA110"), | ||
235 | }, | ||
236 | }, | ||
237 | { | ||
238 | .ident = "Acer Aspire One (HDD)", | ||
239 | .matches = { | ||
240 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
241 | DMI_MATCH(DMI_PRODUCT_NAME, "AOA150"), | ||
242 | }, | ||
243 | }, | ||
244 | {} | ||
245 | }; | ||
246 | |||
228 | static struct dmi_system_id acer_quirks[] = { | 247 | static struct dmi_system_id acer_quirks[] = { |
229 | { | 248 | { |
230 | .callback = dmi_matched, | 249 | .callback = dmi_matched, |
@@ -1117,11 +1136,17 @@ static int __devinit acer_platform_probe(struct platform_device *device) | |||
1117 | } | 1136 | } |
1118 | 1137 | ||
1119 | err = acer_rfkill_init(&device->dev); | 1138 | err = acer_rfkill_init(&device->dev); |
1139 | if (err) | ||
1140 | goto error_rfkill; | ||
1120 | 1141 | ||
1121 | return err; | 1142 | return err; |
1122 | 1143 | ||
1144 | error_rfkill: | ||
1145 | if (has_cap(ACER_CAP_BRIGHTNESS)) | ||
1146 | acer_backlight_exit(); | ||
1123 | error_brightness: | 1147 | error_brightness: |
1124 | acer_led_exit(); | 1148 | if (has_cap(ACER_CAP_MAILLED)) |
1149 | acer_led_exit(); | ||
1125 | error_mailled: | 1150 | error_mailled: |
1126 | return err; | 1151 | return err; |
1127 | } | 1152 | } |
@@ -1254,6 +1279,12 @@ static int __init acer_wmi_init(void) | |||
1254 | 1279 | ||
1255 | printk(ACER_INFO "Acer Laptop ACPI-WMI Extras\n"); | 1280 | printk(ACER_INFO "Acer Laptop ACPI-WMI Extras\n"); |
1256 | 1281 | ||
1282 | if (dmi_check_system(acer_blacklist)) { | ||
1283 | printk(ACER_INFO "Blacklisted hardware detected - " | ||
1284 | "not loading\n"); | ||
1285 | return -ENODEV; | ||
1286 | } | ||
1287 | |||
1257 | find_quirks(); | 1288 | find_quirks(); |
1258 | 1289 | ||
1259 | /* | 1290 | /* |