|
@@ -1,7 +1,7 @@
|
|
/*
|
|
/*
|
|
* Acer WMI Laptop Extras
|
|
* Acer WMI Laptop Extras
|
|
*
|
|
*
|
|
- * Copyright (C) 2007-2008 Carlos Corbacho <carlos@strangeworlds.co.uk>
|
|
|
|
|
|
+ * Copyright (C) 2007-2009 Carlos Corbacho <carlos@strangeworlds.co.uk>
|
|
*
|
|
*
|
|
* Based on acer_acpi:
|
|
* Based on acer_acpi:
|
|
* Copyright (C) 2005-2007 E.M. Smith
|
|
* Copyright (C) 2005-2007 E.M. Smith
|
|
@@ -225,6 +225,25 @@ static struct quirk_entry quirk_fujitsu_amilo_li_1718 = {
|
|
.wireless = 2,
|
|
.wireless = 2,
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/* The Aspire One has a dummy ACPI-WMI interface - disable it */
|
|
|
|
+static struct dmi_system_id __devinitdata acer_blacklist[] = {
|
|
|
|
+ {
|
|
|
|
+ .ident = "Acer Aspire One (SSD)",
|
|
|
|
+ .matches = {
|
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "AOA110"),
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ .ident = "Acer Aspire One (HDD)",
|
|
|
|
+ .matches = {
|
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "AOA150"),
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {}
|
|
|
|
+};
|
|
|
|
+
|
|
static struct dmi_system_id acer_quirks[] = {
|
|
static struct dmi_system_id acer_quirks[] = {
|
|
{
|
|
{
|
|
.callback = dmi_matched,
|
|
.callback = dmi_matched,
|
|
@@ -1117,11 +1136,17 @@ static int __devinit acer_platform_probe(struct platform_device *device)
|
|
}
|
|
}
|
|
|
|
|
|
err = acer_rfkill_init(&device->dev);
|
|
err = acer_rfkill_init(&device->dev);
|
|
|
|
+ if (err)
|
|
|
|
+ goto error_rfkill;
|
|
|
|
|
|
return err;
|
|
return err;
|
|
|
|
|
|
|
|
+error_rfkill:
|
|
|
|
+ if (has_cap(ACER_CAP_BRIGHTNESS))
|
|
|
|
+ acer_backlight_exit();
|
|
error_brightness:
|
|
error_brightness:
|
|
- acer_led_exit();
|
|
|
|
|
|
+ if (has_cap(ACER_CAP_MAILLED))
|
|
|
|
+ acer_led_exit();
|
|
error_mailled:
|
|
error_mailled:
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
@@ -1254,6 +1279,12 @@ static int __init acer_wmi_init(void)
|
|
|
|
|
|
printk(ACER_INFO "Acer Laptop ACPI-WMI Extras\n");
|
|
printk(ACER_INFO "Acer Laptop ACPI-WMI Extras\n");
|
|
|
|
|
|
|
|
+ if (dmi_check_system(acer_blacklist)) {
|
|
|
|
+ printk(ACER_INFO "Blacklisted hardware detected - "
|
|
|
|
+ "not loading\n");
|
|
|
|
+ return -ENODEV;
|
|
|
|
+ }
|
|
|
|
+
|
|
find_quirks();
|
|
find_quirks();
|
|
|
|
|
|
/*
|
|
/*
|