30 #include <linux/kernel.h>
64 "Multiple problems", 1},
67 "ACPI driver problem", 1},
70 "Does not use _REG to protect EC OpRegions", 1},
78 #if CONFIG_ACPI_BLACKLIST_YEAR
80 static int __init blacklist_by_year(
void)
87 "acpi=force is required to enable ACPI\n" );
93 "assuming ACPI-capable machine\n" );
96 if (year < CONFIG_ACPI_BLACKLIST_YEAR) {
98 "acpi=force is required to enable ACPI\n",
99 year, CONFIG_ACPI_BLACKLIST_YEAR);
105 static inline int blacklist_by_year(
void)
117 while (acpi_blacklist[i].
oem_id[0] !=
'\0') {
135 if ((acpi_blacklist[i].oem_revision_predicate ==
all_versions)
136 || (acpi_blacklist[i].oem_revision_predicate ==
139 acpi_blacklist[i].oem_revision)
140 || (acpi_blacklist[i].oem_revision_predicate ==
143 acpi_blacklist[i].oem_revision)
144 || (acpi_blacklist[i].oem_revision_predicate ==
equal
146 acpi_blacklist[i].oem_revision)) {
149 "Vendor \"%6.6s\" System \"%8.8s\" "
150 "Revision 0x%x has a known ACPI BIOS problem.\n",
151 acpi_blacklist[i].oem_id,
152 acpi_blacklist[i].oem_table_id,
156 "Reason: %s. This is a %s error\n",
159 is_critical_error ?
"non-recoverable" :
162 blacklisted = acpi_blacklist[
i].is_critical_error;
169 blacklisted += blacklist_by_year();
196 static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
198 .callback = dmi_disable_osi_vista,
199 .ident =
"Fujitsu Siemens",
215 .callback = dmi_disable_osi_vista,
216 .ident =
"MSI GX723",
223 .callback = dmi_disable_osi_vista,
224 .ident =
"Sony VGN-NS10J_S",
231 .callback = dmi_disable_osi_vista,
232 .ident =
"Sony VGN-SR290J",
239 .callback = dmi_disable_osi_vista,
240 .ident =
"VGN-NS50B_L",
247 .callback = dmi_disable_osi_vista,
248 .ident =
"Toshiba Satellite L355",
255 .callback = dmi_disable_osi_win7,
256 .ident =
"ASUS K50IJ",
263 .callback = dmi_disable_osi_vista,
264 .ident =
"Toshiba P305D",
291 .callback = dmi_enable_osi_linux,
292 .ident =
"Lenovo ThinkPad R61",
299 .callback = dmi_enable_osi_linux,
300 .ident =
"Lenovo ThinkPad T61",
307 .callback = dmi_enable_osi_linux,
308 .ident =
"Lenovo ThinkPad X61",
315 .callback = dmi_enable_osi_linux,
316 .ident =
"Lenovo ThinkPad T400",
323 .callback = dmi_enable_osi_linux,
324 .ident =
"Lenovo ThinkPad T500",