diff options
| author | Zhang Rui <rui.zhang@intel.com> | 2009-05-11 09:36:01 +0800 | 
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2009-05-15 23:21:54 -0400 | 
| commit | 4973b22aa8c70fe036e3e0039f104cf5bb7fe2b1 (patch) | |
| tree | 7c3540560f5256dbcc76d7f8582bab0815ec3451 /drivers/acpi/processor_throttling.c | |
| parent | 56c213fa012f2bad9eff908292ff2500f840b020 (diff) | |
| download | olio-linux-3.10-4973b22aa8c70fe036e3e0039f104cf5bb7fe2b1.tar.xz olio-linux-3.10-4973b22aa8c70fe036e3e0039f104cf5bb7fe2b1.zip  | |
ACPI processor: reset the throttling state once it's invalid
If the BIOS hands us an invalid throttling state,
write a valid state.
http://bugzilla.kernel.org/show_bug.cgi?id=13259
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Tested-by: James Ettle <theholyettlz@googlemail.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/processor_throttling.c')
| -rw-r--r-- | drivers/acpi/processor_throttling.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c index 5f09fb8c0e0..7f16f5f8e7d 100644 --- a/drivers/acpi/processor_throttling.c +++ b/drivers/acpi/processor_throttling.c @@ -838,6 +838,14 @@ static int acpi_processor_get_throttling_ptc(struct acpi_processor *pr)  	ret = acpi_read_throttling_status(pr, &value);  	if (ret >= 0) {  		state = acpi_get_throttling_state(pr, value); +		if (state == -1) { +			ACPI_WARNING((AE_INFO, +				"Invalid throttling state, reset\n")); +			state = 0; +			ret = acpi_processor_set_throttling(pr, state); +			if (ret) +				return ret; +		}  		pr->throttling.state = state;  	}  |