From: Len Brown Date: Thu, 14 Feb 2008 04:13:25 +0000 (-0500) Subject: ACPI: DMI: quirk for FSC ESPRIMO Mobile V5505 X-Git-Tag: v3.12-rc1~22800^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=46c1fbdb7191bf07979d7cd5f08d1a86458181a2;p=kernel%2Fkernel-generic.git ACPI: DMI: quirk for FSC ESPRIMO Mobile V5505 http://bugzilla.kernel.org/show_bug.cgi?id=9939 Signed-off-by: Len Brown --- diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c index dfa4ac8..ea92bac 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 15e6023..0467171 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 ddbe7ef..2c7e003 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