On Wed, 2013-04-10 at 16:22 -0400, Eduardo Valentin wrote: > On 10-04-2013 03:06, Zhang Rui wrote: > > On Tue, 2013-04-09 at 14:59 -0700, Andrew Bresticker wrote: > >> When selecting a target cooling state in get_target_state(), make sure > >> that the state is at least as high as the minimum when the temperature > >> is rising and at least as low as the maximum when the temperature is > >> falling. This is necessary because, in the THREAML_TREND_RAISING and > >> THERMAL_TREND_DROPPING cases, the current state may only be incremented > >> or decremented by one even if it is outside the bounds of the thermal > >> instance. This might occur, for example, if the CPU is heating up > >> and hits a thermal trip point for the first time when it's frequency > >> is much higher than the range specified by the thermal instance > >> corresponding to the trip point. > >> > >> Signed-off-by: Andrew Bresticker <abres...@chromium.org> > > > > applied. > > Rui, > > Can you please add my: > > Acked-by: Eduardo Valentin <eduardo.valen...@ti.com> > sure. Thanks for reviewing.
thanks, rui > > Thanks, > > > > thanks, > > rui > >> --- > >> drivers/thermal/step_wise.c | 10 ++++++++-- > >> 1 file changed, 8 insertions(+), 2 deletions(-) > >> > >> diff --git a/drivers/thermal/step_wise.c b/drivers/thermal/step_wise.c > >> index 407cde3..ca4f79f 100644 > >> --- a/drivers/thermal/step_wise.c > >> +++ b/drivers/thermal/step_wise.c > >> @@ -59,9 +59,12 @@ static unsigned long get_target_state(struct > >> thermal_instance *instance, > >> > >> switch (trend) { > >> case THERMAL_TREND_RAISING: > >> - if (throttle) > >> + if (throttle) { > >> cur_state = cur_state < instance->upper ? > >> (cur_state + 1) : instance->upper; > >> + if (cur_state < instance->lower) > >> + cur_state = instance->lower; > >> + } > >> break; > >> case THERMAL_TREND_RAISE_FULL: > >> if (throttle) > >> @@ -71,8 +74,11 @@ static unsigned long get_target_state(struct > >> thermal_instance *instance, > >> if (cur_state == instance->lower) { > >> if (!throttle) > >> cur_state = -1; > >> - } else > >> + } else { > >> cur_state -= 1; > >> + if (cur_state > instance->upper) > >> + cur_state = instance->upper; > >> + } > >> break; > >> case THERMAL_TREND_DROP_FULL: > >> if (cur_state == instance->lower) { > > > > > > > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/