提交 a74dd5fd 编写于 作者: C Carlos Corbacho 提交者: Len Brown

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: NCarlos Corbacho <carlos@strangeworlds.co.uk>
Reported-by: NAndy Whitcroft <apw@canonical.com>
Cc: stable@kernel.org
Signed-off-by: NLen Brown <len.brown@intel.com>
上级 8e0ee43b
...@@ -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,
...@@ -1254,6 +1273,12 @@ static int __init acer_wmi_init(void) ...@@ -1254,6 +1273,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% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册