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 | ||
