From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Fri, 10 Jul 2015 10:16:06 +0200 Subject: [U-Boot] [PATCH] thermal: imx_thermal: fix busywait if IMX6 temp <0C In-Reply-To: <1436395783-8427-1-git-send-email-tharvey@gateworks.com> References: <1436395783-8427-1-git-send-email-tharvey@gateworks.com> Message-ID: <559F7F46.8070108@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 Hi Tim, On 09/07/2015 00:49, Tim Harvey wrote: > The temperature calculation must be typecasted to keep the compiler > from sign extending a negative value prior to division. > > This fixes an issue where if the CPU temperature is <0C it will get stuck > in the busywait loop until the CPU heats up to 0C. > > Cc: Ye Li > Cc: Jason Liu > Signed-off-by: Tim Harvey > --- > drivers/thermal/imx_thermal.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c > index 0d893c9..6d1ac97 100644 > --- a/drivers/thermal/imx_thermal.c > +++ b/drivers/thermal/imx_thermal.c > @@ -115,7 +115,7 @@ static int read_cpu_temperature(struct udevice *dev) > writel(TEMPSENSE0_FINISHED, &anatop->tempsense0_clr); > > /* milli_Tmeas = c2 - Nmeas * c1 */ > - temperature = (c2 - n_meas * c1)/1000; > + temperature = (long)(c2 - n_meas * c1)/1000; > > /* power down anatop thermal sensor */ > writel(TEMPSENSE0_POWER_DOWN, &anatop->tempsense0_set); > 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 =====================================================================