diff options
| author | David Shaohua Li <shaohua.li@intel.com> | 2005-06-22 18:37:00 -0400 |
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2005-07-29 18:06:29 -0400 |
| commit | 335f16be5d917334f56ec9ef7ecf983476ac0563 (patch) | |
| tree | 6d3717a57c1be1edbfa0593e41232c503cfeac2e | |
| parent | 0b6b2f08c24a65535cb18893ca27516389c5fc0f (diff) | |
[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>
| -rw-r--r-- | drivers/acpi/processor_idle.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index 42b34f5df98b..3702725db97a 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
| @@ -81,30 +81,33 @@ module_param(bm_history, uint, 0644); | |||
| 81 | * | 81 | * |
| 82 | * To skip this limit, boot/load with a large max_cstate limit. | 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 | if (max_cstate > ACPI_PROCESSOR_MAX_POWER) | 86 | if (max_cstate > ACPI_PROCESSOR_MAX_POWER) |
| 87 | return 0; | 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 | " Override with \"processor.max_cstate=%d\"\n", id->ident, | 90 | " Override with \"processor.max_cstate=%d\"\n", id->ident, |
| 91 | ((int)id->driver_data == 1)? "C2,C3":"C3", | ||
| 91 | ACPI_PROCESSOR_MAX_POWER + 1); | 92 | ACPI_PROCESSOR_MAX_POWER + 1); |
| 92 | 93 | ||
| 93 | max_cstate = 1; | 94 | max_cstate = (int)id->driver_data; |
| 94 | 95 | ||
| 95 | return 0; | 96 | return 0; |
| 96 | } | 97 | } |
| 97 | 98 | ||
| 98 | 99 | ||
| 99 | |||
| 100 | |||
| 101 | static struct dmi_system_id __initdata processor_power_dmi_table[] = { | 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 | DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), | 102 | DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), |
| 104 | DMI_MATCH(DMI_BIOS_VERSION,"1SET60WW") }}, | 103 | DMI_MATCH(DMI_BIOS_VERSION,"1SET60WW") }, (void*)1}, |
| 105 | { no_c2c3, "Medion 41700", { | 104 | { set_max_cstate, "Medion 41700", { |
| 105 | DMI_MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), | ||
| 106 | DMI_MATCH(DMI_BIOS_VERSION,"R01-A1J") }, (void*)1}, | ||
| 107 | { set_max_cstate, "Clevo 5600D", { | ||
| 106 | DMI_MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), | 108 | DMI_MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), |
| 107 | DMI_MATCH(DMI_BIOS_VERSION,"R01-A1J") }}, | 109 | DMI_MATCH(DMI_BIOS_VERSION,"SHE845M0.86C.0013.D.0302131307") }, |
| 110 | (void*)2}, | ||
| 108 | {}, | 111 | {}, |
| 109 | }; | 112 | }; |
| 110 | 113 | ||
