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 186 acpi_dmi_osi_linux(-1, d); /* unknown */ 187 187 return 0; 188 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 + } 189 195 190 196 /* 191 197 * Most BIOS that invoke OSI(Linux) do nothing with it. ··· 438 432 .ident = "Fujitsu Siemens", 439 433 .matches = { 440 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"), 441 443 }, 442 444 }, 443 445 /*
+1 -1
drivers/acpi/osl.c
··· 1109 1109 * string starting with '!' disables that string 1110 1110 * otherwise string is added to list, augmenting built-in strings 1111 1111 */ 1112 - static int __init acpi_osi_setup(char *str) 1112 + int __init acpi_osi_setup(char *str) 1113 1113 { 1114 1114 if (str == NULL || *str == '\0') { 1115 1115 printk(KERN_INFO PREFIX "_OSI method disabled\n");
+1
include/linux/acpi.h
··· 203 203 extern int acpi_blacklisted(void); 204 204 #ifdef CONFIG_DMI 205 205 extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d); 206 + extern int acpi_osi_setup(char *str); 206 207 #endif 207 208 208 209 #ifdef CONFIG_ACPI_NUMA