aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/platform/x86/acer-wmi.c
diff options
context:
space:
mode:
authorCarlos Corbacho <carlos@strangeworlds.co.uk>2009-04-04 04:33:29 -0400
committerLen Brown <len.brown@intel.com>2009-04-04 12:36:06 -0400
commita74dd5fdabcd34c93e17e9c7024eeb503c92b048 (patch)
tree5c2844c12154ac4410a33193de899c53c8795d61 /drivers/platform/x86/acer-wmi.c
parent8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84 (diff)
acer-wmi: Blacklist Acer Aspire One
The Aspire One's ACPI-WMI interface is a placeholder that does nothing, and the invalid results that we get from it are now causing userspace problems as acer-wmi always returns that the rfkill is enabled (i.e. the radio is off, when it isn't). As it's hardware controlled, acer-wmi isn't needed on the Aspire One either. Thanks to Andy Whitcroft at Canonical for tracking down Ubuntu's userspace issues to this. Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk> Reported-by: Andy Whitcroft <apw@canonical.com> Cc: stable@kernel.org Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/platform/x86/acer-wmi.c')
-rw-r--r--drivers/platform/x86/acer-wmi.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index a6a42e8c060b..60fbef283e73 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -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 */
229static 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
228static struct dmi_system_id acer_quirks[] = { 247static struct dmi_system_id acer_quirks[] = {
229 { 248 {
230 .callback = dmi_matched, 249 .callback = dmi_matched,
@@ -1254,6 +1273,12 @@ static int __init acer_wmi_init(void)
1254 1273
1255 printk(ACER_INFO "Acer Laptop ACPI-WMI Extras\n"); 1274 printk(ACER_INFO "Acer Laptop ACPI-WMI Extras\n");
1256 1275
1276 if (dmi_check_system(acer_blacklist)) {
1277 printk(ACER_INFO "Blacklisted hardware detected - "
1278 "not loading\n");
1279 return -ENODEV;
1280 }
1281
1257 find_quirks(); 1282 find_quirks();
1258 1283
1259 /* 1284 /*