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>

Len Brown 46c1fbdb bb54675b

+16 -1
+14
drivers/acpi/blacklist.c
··· 186 acpi_dmi_osi_linux(-1, d); /* unknown */ 187 return 0; 188 } 189 190 /* 191 * Most BIOS that invoke OSI(Linux) do nothing with it. ··· 438 .ident = "Fujitsu Siemens", 439 .matches = { 440 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), 441 }, 442 }, 443 /*
··· 186 acpi_dmi_osi_linux(-1, d); /* unknown */ 187 return 0; 188 } 189 + static int __init dmi_disable_osi_vista(const struct dmi_system_id *d) 190 + { 191 + printk(KERN_NOTICE PREFIX "DMI detected: %s\n", d->ident); 192 + acpi_osi_setup("!Windows 2006"); 193 + return 0; 194 + } 195 196 /* 197 * Most BIOS that invoke OSI(Linux) do nothing with it. ··· 432 .ident = "Fujitsu Siemens", 433 .matches = { 434 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), 435 + }, 436 + }, 437 + { 438 + .callback = dmi_disable_osi_vista, 439 + .ident = "Fujitsu Siemens", 440 + .matches = { 441 + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), 442 + DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO Mobile V5505"), 443 }, 444 }, 445 /*
+1 -1
drivers/acpi/osl.c
··· 1109 * string starting with '!' disables that string 1110 * otherwise string is added to list, augmenting built-in strings 1111 */ 1112 - static int __init acpi_osi_setup(char *str) 1113 { 1114 if (str == NULL || *str == '\0') { 1115 printk(KERN_INFO PREFIX "_OSI method disabled\n");
··· 1109 * string starting with '!' disables that string 1110 * otherwise string is added to list, augmenting built-in strings 1111 */ 1112 + int __init acpi_osi_setup(char *str) 1113 { 1114 if (str == NULL || *str == '\0') { 1115 printk(KERN_INFO PREFIX "_OSI method disabled\n");
+1
include/linux/acpi.h
··· 203 extern int acpi_blacklisted(void); 204 #ifdef CONFIG_DMI 205 extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d); 206 #endif 207 208 #ifdef CONFIG_ACPI_NUMA
··· 203 extern int acpi_blacklisted(void); 204 #ifdef CONFIG_DMI 205 extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d); 206 + extern int acpi_osi_setup(char *str); 207 #endif 208 209 #ifdef CONFIG_ACPI_NUMA