powerpc: Fix G5 thermal shutdown
This changes the thresholds for the liquid cooled G5 thermal shutdown mechanism to prevent an errant shutdown with some models. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Родитель
f09b7b2a11
Коммит
de0b632ba0
|
@ -948,10 +948,16 @@ static void do_monitor_cpu_combined(void)
|
|||
printk(KERN_WARNING "Warning ! Temperature way above maximum (%d) !\n",
|
||||
temp_combi >> 16);
|
||||
state0->overtemp += CPU_MAX_OVERTEMP / 4;
|
||||
} else if (temp_combi > (state0->mpu.tmax << 16))
|
||||
} else if (temp_combi > (state0->mpu.tmax << 16)) {
|
||||
state0->overtemp++;
|
||||
else
|
||||
printk(KERN_WARNING "Temperature %d above max %d. overtemp %d\n",
|
||||
temp_combi >> 16, state0->mpu.tmax, state0->overtemp);
|
||||
} else {
|
||||
if (state0->overtemp)
|
||||
printk(KERN_WARNING "Temperature back down to %d\n",
|
||||
temp_combi >> 16);
|
||||
state0->overtemp = 0;
|
||||
}
|
||||
if (state0->overtemp >= CPU_MAX_OVERTEMP)
|
||||
critical_state = 1;
|
||||
if (state0->overtemp > 0) {
|
||||
|
@ -1023,10 +1029,16 @@ static void do_monitor_cpu_split(struct cpu_pid_state *state)
|
|||
" (%d) !\n",
|
||||
state->index, temp >> 16);
|
||||
state->overtemp += CPU_MAX_OVERTEMP / 4;
|
||||
} else if (temp > (state->mpu.tmax << 16))
|
||||
} else if (temp > (state->mpu.tmax << 16)) {
|
||||
state->overtemp++;
|
||||
else
|
||||
printk(KERN_WARNING "CPU %d temperature %d above max %d. overtemp %d\n",
|
||||
state->index, temp >> 16, state->mpu.tmax, state->overtemp);
|
||||
} else {
|
||||
if (state->overtemp)
|
||||
printk(KERN_WARNING "CPU %d temperature back down to %d\n",
|
||||
state->index, temp >> 16);
|
||||
state->overtemp = 0;
|
||||
}
|
||||
if (state->overtemp >= CPU_MAX_OVERTEMP)
|
||||
critical_state = 1;
|
||||
if (state->overtemp > 0) {
|
||||
|
@ -1085,10 +1097,16 @@ static void do_monitor_cpu_rack(struct cpu_pid_state *state)
|
|||
" (%d) !\n",
|
||||
state->index, temp >> 16);
|
||||
state->overtemp = CPU_MAX_OVERTEMP / 4;
|
||||
} else if (temp > (state->mpu.tmax << 16))
|
||||
} else if (temp > (state->mpu.tmax << 16)) {
|
||||
state->overtemp++;
|
||||
else
|
||||
printk(KERN_WARNING "CPU %d temperature %d above max %d. overtemp %d\n",
|
||||
state->index, temp >> 16, state->mpu.tmax, state->overtemp);
|
||||
} else {
|
||||
if (state->overtemp)
|
||||
printk(KERN_WARNING "CPU %d temperature back down to %d\n",
|
||||
state->index, temp >> 16);
|
||||
state->overtemp = 0;
|
||||
}
|
||||
if (state->overtemp >= CPU_MAX_OVERTEMP)
|
||||
critical_state = 1;
|
||||
if (state->overtemp > 0) {
|
||||
|
|
|
@ -269,7 +269,7 @@ struct slots_pid_state
|
|||
#define CPU_TEMP_HISTORY_SIZE 2
|
||||
#define CPU_POWER_HISTORY_SIZE 10
|
||||
#define CPU_PID_INTERVAL 1
|
||||
#define CPU_MAX_OVERTEMP 30
|
||||
#define CPU_MAX_OVERTEMP 90
|
||||
|
||||
#define CPUA_PUMP_RPM_INDEX 7
|
||||
#define CPUB_PUMP_RPM_INDEX 8
|
||||
|
|
Загрузка…
Ссылка в новой задаче