From: Tim Harvey Date: Wed, 8 Jul 2015 22:49:43 +0000 (-0700) Subject: thermal: imx_thermal: fix busywait if IMX6 temp <0C X-Git-Tag: v2015.10-rc1~2^2~55 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=425640256a7c5e9259f7583ee4eca1f3b70f8032;p=u-boot thermal: imx_thermal: fix busywait if IMX6 temp <0C 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 --- diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c index 42ca8d0b6b..3c6c9679f9 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);