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 <b37916@freescale.com> Cc: Jason Liu <r64343@freescale.com> Signed-off-by: Tim Harvey <tharvey@gateworks.com>
This commit is contained in:
parent
699279cac0
commit
425640256a
|
@ -115,7 +115,7 @@ static int read_cpu_temperature(struct udevice *dev)
|
||||||
writel(TEMPSENSE0_FINISHED, &anatop->tempsense0_clr);
|
writel(TEMPSENSE0_FINISHED, &anatop->tempsense0_clr);
|
||||||
|
|
||||||
/* milli_Tmeas = c2 - Nmeas * c1 */
|
/* milli_Tmeas = c2 - Nmeas * c1 */
|
||||||
temperature = (c2 - n_meas * c1)/1000;
|
temperature = (long)(c2 - n_meas * c1)/1000;
|
||||||
|
|
||||||
/* power down anatop thermal sensor */
|
/* power down anatop thermal sensor */
|
||||||
writel(TEMPSENSE0_POWER_DOWN, &anatop->tempsense0_set);
|
writel(TEMPSENSE0_POWER_DOWN, &anatop->tempsense0_set);
|
||||||
|
|
Loading…
Reference in New Issue