diff mbox

[RFC,4/6] Thermal: fix step_wise handling of THERMAL_TREND_DROP_EFULL

Message ID 1371475468-5351-5-git-send-email-rui.zhang@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Zhang Rui
Headers show

Commit Message

Zhang Rui June 17, 2013, 1:24 p.m. UTC
Change the step_wise cooling algorithm to handle
THERMAL_TREND_DROP_FULL a bit differently.

When the temperature is higher than the trip point,
we should always use the instance->lower as the next target state.
When the temperature is lower than the trip point,
we should always deactive the thermal instance.

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
---
 drivers/thermal/step_wise.c |   12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

Comments

Eduardo Valentin July 2, 2013, 9:11 p.m. UTC | #1
On subject s/THERMAL_TREND_DROP_EFULL/THERMAL_TREND_DROP_FULL/g

On 17-06-2013 09:24, Zhang Rui wrote:
> Change the step_wise cooling algorithm to handle
> THERMAL_TREND_DROP_FULL a bit differently.
> 
> When the temperature is higher than the trip point,
> we should always use the instance->lower as the next target state.
> When the temperature is lower than the trip point,
> we should always deactive the thermal instance.

s/deactive/deactivate/g


Are you expecting to optimize the system in which way by doing this
change? In which situation we would need to set to instance->lower if we
are at a state which trend is dropping fully?

> 
> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
> ---
>  drivers/thermal/step_wise.c |   12 +++++-------
>  1 file changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/thermal/step_wise.c b/drivers/thermal/step_wise.c
> index f0cc5e5..84d6e90 100644
> --- a/drivers/thermal/step_wise.c
> +++ b/drivers/thermal/step_wise.c
> @@ -42,9 +42,8 @@
>   *       state for this trip point, if the cooling state already
>   *       equals lower limit, deactivate the thermal instance
>   *    c. if the trend is THERMAL_TREND_RAISE_FULL, do nothing
> - *    d. if the trend is THERMAL_TREND_DROP_FULL, use lower limit,
> - *       if the cooling state already equals lower limit,
> - *       deactive the thermal instance
> + *    d. if the trend is THERMAL_TREND_DROP_FULL, deactive
> + *	 the thermal instance
>   */
>  static unsigned long get_target_state(struct thermal_instance *instance,
>  				enum thermal_trend trend, bool throttle)
> @@ -91,11 +90,10 @@ static unsigned long get_target_state(struct thermal_instance *instance,
>  		}
>  		break;
>  	case THERMAL_TREND_DROP_FULL:
> -		if (cur_state == instance->lower) {
> -			if (!throttle)
> -				next_target = THERMAL_NO_TARGET;
> -		} else
> +		if (throttle)
>  			next_target = instance->lower;
> +		else
> +			next_target = THERMAL_NO_TARGET;
>  		break;
>  	default:
>  		break;
>
Zhang Rui July 8, 2013, 2:35 a.m. UTC | #2
On Tue, 2013-07-02 at 17:11 -0400, Eduardo Valentin wrote:
> On subject s/THERMAL_TREND_DROP_EFULL/THERMAL_TREND_DROP_FULL/g
> 
agreed.

> On 17-06-2013 09:24, Zhang Rui wrote:
> > Change the step_wise cooling algorithm to handle
> > THERMAL_TREND_DROP_FULL a bit differently.
> > 
> > When the temperature is higher than the trip point,
> > we should always use the instance->lower as the next target state.
> > When the temperature is lower than the trip point,
> > we should always deactive the thermal instance.
> 
> s/deactive/deactivate/g
> 
agreed.

thanks,
rui
> 
> Are you expecting to optimize the system in which way by doing this
> change? In which situation we would need to set to instance->lower if we
> are at a state which trend is dropping fully?
> 
> > 
> > Signed-off-by: Zhang Rui <rui.zhang@intel.com>
> > ---
> >  drivers/thermal/step_wise.c |   12 +++++-------
> >  1 file changed, 5 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/thermal/step_wise.c b/drivers/thermal/step_wise.c
> > index f0cc5e5..84d6e90 100644
> > --- a/drivers/thermal/step_wise.c
> > +++ b/drivers/thermal/step_wise.c
> > @@ -42,9 +42,8 @@
> >   *       state for this trip point, if the cooling state already
> >   *       equals lower limit, deactivate the thermal instance
> >   *    c. if the trend is THERMAL_TREND_RAISE_FULL, do nothing
> > - *    d. if the trend is THERMAL_TREND_DROP_FULL, use lower limit,
> > - *       if the cooling state already equals lower limit,
> > - *       deactive the thermal instance
> > + *    d. if the trend is THERMAL_TREND_DROP_FULL, deactive
> > + *	 the thermal instance
> >   */
> >  static unsigned long get_target_state(struct thermal_instance *instance,
> >  				enum thermal_trend trend, bool throttle)
> > @@ -91,11 +90,10 @@ static unsigned long get_target_state(struct thermal_instance *instance,
> >  		}
> >  		break;
> >  	case THERMAL_TREND_DROP_FULL:
> > -		if (cur_state == instance->lower) {
> > -			if (!throttle)
> > -				next_target = THERMAL_NO_TARGET;
> > -		} else
> > +		if (throttle)
> >  			next_target = instance->lower;
> > +		else
> > +			next_target = THERMAL_NO_TARGET;
> >  		break;
> >  	default:
> >  		break;
> > 
> 
> 


--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/thermal/step_wise.c b/drivers/thermal/step_wise.c
index f0cc5e5..84d6e90 100644
--- a/drivers/thermal/step_wise.c
+++ b/drivers/thermal/step_wise.c
@@ -42,9 +42,8 @@ 
  *       state for this trip point, if the cooling state already
  *       equals lower limit, deactivate the thermal instance
  *    c. if the trend is THERMAL_TREND_RAISE_FULL, do nothing
- *    d. if the trend is THERMAL_TREND_DROP_FULL, use lower limit,
- *       if the cooling state already equals lower limit,
- *       deactive the thermal instance
+ *    d. if the trend is THERMAL_TREND_DROP_FULL, deactive
+ *	 the thermal instance
  */
 static unsigned long get_target_state(struct thermal_instance *instance,
 				enum thermal_trend trend, bool throttle)
@@ -91,11 +90,10 @@  static unsigned long get_target_state(struct thermal_instance *instance,
 		}
 		break;
 	case THERMAL_TREND_DROP_FULL:
-		if (cur_state == instance->lower) {
-			if (!throttle)
-				next_target = THERMAL_NO_TARGET;
-		} else
+		if (throttle)
 			next_target = instance->lower;
+		else
+			next_target = THERMAL_NO_TARGET;
 		break;
 	default:
 		break;