diff options
author | Len Brown <len.brown@intel.com> | 2008-02-13 23:13:25 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-02-14 02:43:39 -0500 |
commit | 46c1fbdb7191bf07979d7cd5f08d1a86458181a2 (patch) | |
tree | 4a5bb93a2e27cd6b65975ee03957cbcf426b5985 | |
parent | bb54675b9b2f968f07e29b6c23b8dc90bad59723 (diff) | |
download | linux-46c1fbdb7191bf07979d7cd5f08d1a86458181a2.tar.bz2 |
ACPI: DMI: quirk for FSC ESPRIMO Mobile V5505
http://bugzilla.kernel.org/show_bug.cgi?id=9939
Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r-- | drivers/acpi/blacklist.c | 14 | ||||
-rw-r--r-- | drivers/acpi/osl.c | 2 | ||||
-rw-r--r-- | include/linux/acpi.h | 1 |
3 files changed, 16 insertions, 1 deletions
diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c index dfa4ac8e9982..ea92bac42c53 100644 --- a/drivers/acpi/blacklist.c +++ b/drivers/acpi/blacklist.c @@ -186,6 +186,12 @@ static int __init dmi_unknown_osi_linux(const struct dmi_system_id *d) acpi_dmi_osi_linux(-1, d); /* unknown */ return 0; } +static int __init dmi_disable_osi_vista(const struct dmi_system_id *d) +{ + printk(KERN_NOTICE PREFIX "DMI detected: %s\n", d->ident); + acpi_osi_setup("!Windows 2006"); + return 0; +} /* * Most BIOS that invoke OSI(Linux) do nothing with it. @@ -434,6 +440,14 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), }, }, + { + .callback = dmi_disable_osi_vista, + .ident = "Fujitsu Siemens", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), + DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO Mobile V5505"), + }, + }, /* * Disable OSI(Linux) warnings on all "Hewlett-Packard" * diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index 15e602377655..0467171dbdb8 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c @@ -1109,7 +1109,7 @@ void __init acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d) * string starting with '!' disables that string * otherwise string is added to list, augmenting built-in strings */ -static int __init acpi_osi_setup(char *str) +int __init acpi_osi_setup(char *str) { if (str == NULL || *str == '\0') { printk(KERN_INFO PREFIX "_OSI method disabled\n"); diff --git a/include/linux/acpi.h b/include/linux/acpi.h index ddbe7efe590e..2c7e003356ac 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -203,6 +203,7 @@ extern bool wmi_has_guid(const char *guid); extern int acpi_blacklisted(void); #ifdef CONFIG_DMI extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d); +extern int acpi_osi_setup(char *str); #endif #ifdef CONFIG_ACPI_NUMA |