Subject:[ACPI]:Add DMI check to disable mwait for CPU C-states From: Zhao Yakui <yakui.zhao@xxxxxxxxx> Add the DMI check to disable mwait for CPU C-states. If the board is matched with DMI table, OSPM should not use mwait for CPU C-states even when mwait is supported. In such case the C2C3_FFH access mode will be disabled. http://bugzilla.kernel.org/show_bug.cgi?id=10807 Signed-off-by: Zhao Yakui <yakui.zhao@xxxxxxxxx> Signed-off-by: Li Shaohua <shaohua.li@xxxxxxxxx> --- drivers/acpi/processor_core.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) Index: linux-2.6/drivers/acpi/processor_core.c =================================================================== --- linux-2.6.orig/drivers/acpi/processor_core.c +++ linux-2.6/drivers/acpi/processor_core.c @@ -121,6 +121,23 @@ static const struct file_operations acpi struct acpi_processor *processors[NR_CPUS]; struct acpi_processor_errata errata __read_mostly; +static int set_no_mwait(const struct dmi_system_id *id) +{ + printk(KERN_NOTICE PREFIX "%s detected - " + "disable mwait for CPU C-stetes\n", id->ident); + idle_nomwait = 1; + return 0; +} + +static struct dmi_system_id __cpuinitdata processor_idle_dmi_table[] = { + { + set_no_mwait, "IFL91 board", { + DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"), + DMI_MATCH(DMI_SYS_VENDOR, "ZEPTO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "3215W"), + DMI_MATCH(DMI_BOARD_NAME, "IFL91") }, NULL}, + {}, +}; /* -------------------------------------------------------------------------- Errata Handling @@ -1102,6 +1119,11 @@ static int __init acpi_processor_init(vo return -ENOMEM; acpi_processor_dir->owner = THIS_MODULE; + /* + * Check whether the system is DMI table. If yes, OSPM + * should not use mwait for CPU-states. + */ + dmi_check_system(processor_idle_dmi_table); result = cpuidle_register_driver(&acpi_idle_driver); if (result < 0) goto out_proc; -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html