public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] thermal: imx_thermal: increase critical temperature threshold
@ 2015-05-21 15:40 Tim Harvey
  2015-05-21 15:55 ` Liu Jason
  2015-05-26 12:23 ` Stefano Babic
  0 siblings, 2 replies; 3+ messages in thread
From: Tim Harvey @ 2015-05-21 15:40 UTC (permalink / raw)
  To: u-boot

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@denx.de>
Cc: Eric Nelson <eric.nelson@boundarydevices.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Jon Nettleton <jon.nettleton@gmail.com>
Cc: Jason Liu <r64343@freescale.com>
Cc: Ye Li <b37916@freescale.com>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Christian Gmeiner <christian.gmeiner@gmail.com>
Cc: Markus Niebel <Markus.Niebel@tq-group.com>
Cc: Peng Fan <b51431@freescale.com>
Signed-off-by: Tim Harvey <tharvey@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();
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [U-Boot] [PATCH] thermal: imx_thermal: increase critical temperature threshold
  2015-05-21 15:40 [U-Boot] [PATCH] thermal: imx_thermal: increase critical temperature threshold Tim Harvey
@ 2015-05-21 15:55 ` Liu Jason
  2015-05-26 12:23 ` Stefano Babic
  1 sibling, 0 replies; 3+ messages in thread
From: Liu Jason @ 2015-05-21 15:55 UTC (permalink / raw)
  To: u-boot



________________________________________
From: Tim Harvey <tharvey@gateworks.com>
Sent: Thursday, May 21, 2015 11:40 PM
To: Stefano Babic
Cc: u-boot at lists.denx.de; Stefan Roese; Eric Nelson; Heiko Schocher; Nikita Kiryanov; Jon Nettleton; Liu Hui-R64343; Li Ye-B37916; Estevam Fabio-R49496; Christian Gmeiner; Markus Niebel; Fan Peng-B51431
Subject: [U-Boot] [PATCH] thermal: imx_thermal: increase critical temperature threshold

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@denx.de>
Cc: Eric Nelson <eric.nelson@boundarydevices.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Jon Nettleton <jon.nettleton@gmail.com>
Cc: Jason Liu <r64343@freescale.com>
Cc: Ye Li <b37916@freescale.com>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Christian Gmeiner <christian.gmeiner@gmail.com>
Cc: Markus Niebel <Markus.Niebel@tq-group.com>
Cc: Peng Fan <b51431@freescale.com>
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
---
 drivers/thermal/imx_thermal.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)


Looks good to me, thus:

Acked-by: Jason Liu <r64343@freescale.com> 

Jason Liu

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();
--
1.9.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [U-Boot] [PATCH] thermal: imx_thermal: increase critical temperature threshold
  2015-05-21 15:40 [U-Boot] [PATCH] thermal: imx_thermal: increase critical temperature threshold Tim Harvey
  2015-05-21 15:55 ` Liu Jason
@ 2015-05-26 12:23 ` Stefano Babic
  1 sibling, 0 replies; 3+ messages in thread
From: Stefano Babic @ 2015-05-26 12:23 UTC (permalink / raw)
  To: u-boot

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@denx.de>
> Cc: Eric Nelson <eric.nelson@boundarydevices.com>
> Cc: Heiko Schocher <hs@denx.de>
> Cc: Nikita Kiryanov <nikita@compulab.co.il>
> Cc: Jon Nettleton <jon.nettleton@gmail.com>
> Cc: Jason Liu <r64343@freescale.com>
> Cc: Ye Li <b37916@freescale.com>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Christian Gmeiner <christian.gmeiner@gmail.com>
> Cc: Markus Niebel <Markus.Niebel@tq-group.com>
> Cc: Peng Fan <b51431@freescale.com>
> Signed-off-by: Tim Harvey <tharvey@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
=====================================================================

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-05-26 12:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-21 15:40 [U-Boot] [PATCH] thermal: imx_thermal: increase critical temperature threshold Tim Harvey
2015-05-21 15:55 ` Liu Jason
2015-05-26 12:23 ` Stefano Babic

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox