[U-Boot] [PATCH] thermal: imx_thermal: increase critical temperature threshold

Stefano Babic sbabic at denx.de
Tue May 26 14:23:10 CEST 2015


On 21/05/2015 17:40, Tim Harvey wrote:
> The CPU temperature grade from OTP is now used to define the critical
> threshold at which point we busyloop until we are below, however this
> threshold is still too low.
> 
> Instead of 20C below the max CPU temperature, change it to 5C defined now
> by TEMPERATURE_HOT_DETLA for clarity. Rename 'passive' to 'critical'
> as that better defines our use case here. Additionally change the output
> of the busyloop message to show the max CPU temperature as well as current.
> 
> Before:
> CPU Temperature is 101 C, too hot to boot, waiting...
> CPU Temperature is 101 C, too hot to boot, waiting...
> 
> After:
> CPU Temperature (101C) too close to max (105C) waiting...
> CPU Temperature (101C) too close to max (105C) waiting...
> 
> Cc: Stefan Roese <sr at denx.de>
> Cc: Eric Nelson <eric.nelson at boundarydevices.com>
> Cc: Heiko Schocher <hs at denx.de>
> Cc: Nikita Kiryanov <nikita at compulab.co.il>
> Cc: Jon Nettleton <jon.nettleton at gmail.com>
> Cc: Jason Liu <r64343 at freescale.com>
> Cc: Ye Li <b37916 at freescale.com>
> Cc: Fabio Estevam <fabio.estevam at freescale.com>
> Cc: Christian Gmeiner <christian.gmeiner at gmail.com>
> Cc: Markus Niebel <Markus.Niebel at tq-group.com>
> Cc: Peng Fan <b51431 at freescale.com>
> Signed-off-by: Tim Harvey <tharvey at gateworks.com>
> ---
>  drivers/thermal/imx_thermal.c | 15 +++++++++------
>  1 file changed, 9 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
> index b5dab63..0d893c9 100644
> --- a/drivers/thermal/imx_thermal.c
> +++ b/drivers/thermal/imx_thermal.c
> @@ -19,6 +19,8 @@
>  #include <thermal.h>
>  #include <imx_thermal.h>
>  
> +/* board will busyloop until this many degrees C below CPU max temperature */
> +#define TEMPERATURE_HOT_DELTA   5 /* CPU maxT - 5C */
>  #define FACTOR0			10000000
>  #define FACTOR1			15976
>  #define FACTOR2			4297157
> @@ -34,7 +36,7 @@
>  
>  struct thermal_data {
>  	unsigned int fuse;
> -	int passive;
> +	int critical;
>  	int minc;
>  	int maxc;
>  };
> @@ -129,9 +131,10 @@ int imx_thermal_get_temp(struct udevice *dev, int *temp)
>  
>  	cpu_tmp = read_cpu_temperature(dev);
>  	while (cpu_tmp > priv->minc && cpu_tmp < priv->maxc) {
> -		if (cpu_tmp >= priv->passive) {
> -			printf("CPU Temperature is %d C, too hot to boot, waiting...\n",
> -			       cpu_tmp);
> +		if (cpu_tmp >= priv->critical) {
> +			printf("CPU Temperature (%dC) too close to max (%dC)",
> +			       cpu_tmp, priv->maxc);
> +			puts(" waiting...\n");
>  			udelay(5000000);
>  			cpu_tmp = read_cpu_temperature(dev);
>  		} else {
> @@ -164,9 +167,9 @@ static int imx_thermal_probe(struct udevice *dev)
>  		return -EPERM;
>  	}
>  
> -	/* set passive cooling temp to max - 20C */
> +	/* set critical cooling temp */
>  	get_cpu_temp_grade(&priv->minc, &priv->maxc);
> -	priv->passive = priv->maxc - 20;
> +	priv->critical = priv->maxc - TEMPERATURE_HOT_DELTA;
>  	priv->fuse = fuse;
>  
>  	enable_thermal_clk();
> 

Applied to u-boot-imx, thanks!

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list