From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Tue, 26 May 2015 14:23:10 +0200 Subject: [U-Boot] [PATCH] thermal: imx_thermal: increase critical temperature threshold In-Reply-To: <1432222806-15970-1-git-send-email-tharvey@gateworks.com> References: <1432222806-15970-1-git-send-email-tharvey@gateworks.com> Message-ID: <556465AE.3090501@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > Cc: Eric Nelson > Cc: Heiko Schocher > Cc: Nikita Kiryanov > Cc: Jon Nettleton > Cc: Jason Liu > Cc: Ye Li > Cc: Fabio Estevam > Cc: Christian Gmeiner > Cc: Markus Niebel > Cc: Peng Fan > Signed-off-by: Tim Harvey > --- > 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 > #include > > +/* 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 =====================================================================