diff options
Diffstat (limited to 'drivers/macintosh/windfarm_pm91.c')
-rw-r--r-- | drivers/macintosh/windfarm_pm91.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/macintosh/windfarm_pm91.c b/drivers/macintosh/windfarm_pm91.c index 2eb484f213c8..a8ac66cd3b13 100644 --- a/drivers/macintosh/windfarm_pm91.c +++ b/drivers/macintosh/windfarm_pm91.c | |||
@@ -76,6 +76,7 @@ static struct wf_control *cpufreq_clamp; | |||
76 | 76 | ||
77 | /* Set to kick the control loop into life */ | 77 | /* Set to kick the control loop into life */ |
78 | static int wf_smu_all_controls_ok, wf_smu_all_sensors_ok, wf_smu_started; | 78 | static int wf_smu_all_controls_ok, wf_smu_all_sensors_ok, wf_smu_started; |
79 | static bool wf_smu_overtemp; | ||
79 | 80 | ||
80 | /* Failure handling.. could be nicer */ | 81 | /* Failure handling.. could be nicer */ |
81 | #define FAILURE_FAN 0x01 | 82 | #define FAILURE_FAN 0x01 |
@@ -517,6 +518,7 @@ static void wf_smu_tick(void) | |||
517 | if (new_failure & FAILURE_OVERTEMP) { | 518 | if (new_failure & FAILURE_OVERTEMP) { |
518 | wf_set_overtemp(); | 519 | wf_set_overtemp(); |
519 | wf_smu_skipping = 2; | 520 | wf_smu_skipping = 2; |
521 | wf_smu_overtemp = true; | ||
520 | } | 522 | } |
521 | 523 | ||
522 | /* We only clear the overtemp condition if overtemp is cleared | 524 | /* We only clear the overtemp condition if overtemp is cleared |
@@ -525,8 +527,10 @@ static void wf_smu_tick(void) | |||
525 | * the control loop levels, but we don't want to keep it clear | 527 | * the control loop levels, but we don't want to keep it clear |
526 | * here in this case | 528 | * here in this case |
527 | */ | 529 | */ |
528 | if (new_failure == 0 && last_failure & FAILURE_OVERTEMP) | 530 | if (!wf_smu_failure_state && wf_smu_overtemp) { |
529 | wf_clear_overtemp(); | 531 | wf_clear_overtemp(); |
532 | wf_smu_overtemp = false; | ||
533 | } | ||
530 | } | 534 | } |
531 | 535 | ||
532 | 536 | ||