[ACPI] address boot-freeze with updated DMI blacklist for c-states

http://bugzilla.kernel.org/show_bug.cgi?id=4763

Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>

authored by David Shaohua Li and committed by Len Brown 335f16be 0b6b2f08

+12 -9
+12 -9
drivers/acpi/processor_idle.c
··· 81 81 * 82 82 * To skip this limit, boot/load with a large max_cstate limit. 83 83 */ 84 - static int no_c2c3(struct dmi_system_id *id) 84 + static int set_max_cstate(struct dmi_system_id *id) 85 85 { 86 86 if (max_cstate > ACPI_PROCESSOR_MAX_POWER) 87 87 return 0; 88 88 89 - printk(KERN_NOTICE PREFIX "%s detected - C2,C3 disabled." 89 + printk(KERN_NOTICE PREFIX "%s detected - %s disabled." 90 90 " Override with \"processor.max_cstate=%d\"\n", id->ident, 91 + ((int)id->driver_data == 1)? "C2,C3":"C3", 91 92 ACPI_PROCESSOR_MAX_POWER + 1); 92 93 93 - max_cstate = 1; 94 + max_cstate = (int)id->driver_data; 94 95 95 96 return 0; 96 97 } 97 98 98 99 99 - 100 - 101 100 static struct dmi_system_id __initdata processor_power_dmi_table[] = { 102 - { no_c2c3, "IBM ThinkPad R40e", { 101 + { set_max_cstate, "IBM ThinkPad R40e", { 103 102 DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), 104 - DMI_MATCH(DMI_BIOS_VERSION,"1SET60WW") }}, 105 - { no_c2c3, "Medion 41700", { 103 + DMI_MATCH(DMI_BIOS_VERSION,"1SET60WW") }, (void*)1}, 104 + { set_max_cstate, "Medion 41700", { 106 105 DMI_MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), 107 - DMI_MATCH(DMI_BIOS_VERSION,"R01-A1J") }}, 106 + DMI_MATCH(DMI_BIOS_VERSION,"R01-A1J") }, (void*)1}, 107 + { set_max_cstate, "Clevo 5600D", { 108 + DMI_MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), 109 + DMI_MATCH(DMI_BIOS_VERSION,"SHE845M0.86C.0013.D.0302131307") }, 110 + (void*)2}, 108 111 {}, 109 112 }; 110 113