Commit 07290bed authored by Len Brown's avatar Len Brown

Merge branch 'acer' into release

parents 12648810 4f0175dc
Acer Laptop WMI Extras Driver Acer Laptop WMI Extras Driver
http://code.google.com/p/aceracpi http://code.google.com/p/aceracpi
Version 0.2 Version 0.3
18th August 2008 4th April 2009
Copyright 2007-2008 Carlos Corbacho <carlos@strangeworlds.co.uk> Copyright 2007-2009 Carlos Corbacho <carlos@strangeworlds.co.uk>
acer-wmi is a driver to allow you to control various parts of your Acer laptop acer-wmi is a driver to allow you to control various parts of your Acer laptop
hardware under Linux which are exposed via ACPI-WMI. hardware under Linux which are exposed via ACPI-WMI.
...@@ -36,6 +36,10 @@ not possible in kernel space from a 64 bit OS. ...@@ -36,6 +36,10 @@ not possible in kernel space from a 64 bit OS.
Supported Hardware Supported Hardware
****************** ******************
NOTE: The Acer Aspire One is not supported hardware. It cannot work with
acer-wmi until Acer fix their ACPI-WMI implementation on them, so has been
blacklisted until that happens.
Please see the website for the current list of known working hardare: Please see the website for the current list of known working hardare:
http://code.google.com/p/aceracpi/wiki/SupportedHardware http://code.google.com/p/aceracpi/wiki/SupportedHardware
......
/* /*
* 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 = { ...@@ -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) ...@@ -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) ...@@ -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();
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment