===================================================================
@@ -135,6 +135,19 @@
unsigned int known:1;
} osi_linux = { 0, 0, 0, 0};
+#define ENFORCE_RESOURCES_STRICT 2
+#define ENFORCE_RESOURCES_LAX 1
+#define ENFORCE_RESOURCES_NO 0
+
+static unsigned int acpi_enforce_resources = ENFORCE_RESOURCES_LAX;
+static struct dmi_system_id __initdata acpi_resources_dmi_table[] = {
+ {
+ NULL, "Asus EEEPC-901", {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer INC."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "901") }, NULL},
+ {},
+};
+
static void __init acpi_request_region (struct acpi_generic_address *addr,
unsigned int length, char *desc)
{
@@ -179,6 +192,14 @@
acpi_request_region(&acpi_gbl_FADT.xgpe1_block,
acpi_gbl_FADT.gpe1_block_length, "ACPI GPE1_BLK");
+ /*
+ * Only when the ACPI is enabled, the dmi table will be checked. If
+ * the system falls into the dmi check table, the strict resource
+ * check will be used.
+ */
+ if (!acpi_disabled && dmi_check_system(acpi_resources_dmi_table))
+ acpi_enforce_resources = ENFORCE_RESOURCES_STRICT;
+
return 0;
}
device_initcall(acpi_reserve_resources);
@@ -1073,11 +1094,6 @@
* -> ACPI Operation Region resources will not be registered
*
*/
-#define ENFORCE_RESOURCES_STRICT 2
-#define ENFORCE_RESOURCES_LAX 1
-#define ENFORCE_RESOURCES_NO 0
-
-static unsigned int acpi_enforce_resources = ENFORCE_RESOURCES_LAX;
static int __init acpi_enforce_resources_setup(char *str)
{