Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

thermal/drivers/rcar_gen3_thermal: Fix coefficient calculations

The fixed value of 157 used in the calculations are only correct for
M3-W, on other Gen3 SoC it should be 167. The constant can be derived
correctly from the static TJ_3 constant and the SoC specific TJ_1 value.
Update the calculation be correct on all Gen3 SoCs.

Fixes: 4eb39f79ef44 ("thermal: rcar_gen3_thermal: Update value of Tj_1")
Reported-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20210605085211.564909-1-niklas.soderlund+renesas@ragnatech.se

authored by

Niklas Söderlund and committed by
Daniel Lezcano
8946187a d7539260

+1 -1
+1 -1
drivers/thermal/rcar_gen3_thermal.c
··· 143 143 * Division is not scaled in BSP and if scaled it might overflow 144 144 * the dividend (4095 * 4095 << 14 > INT_MAX) so keep it unscaled 145 145 */ 146 - tsc->tj_t = (FIXPT_INT((ptat[1] - ptat[2]) * 157) 146 + tsc->tj_t = (FIXPT_INT((ptat[1] - ptat[2]) * (ths_tj_1 - TJ_3)) 147 147 / (ptat[0] - ptat[2])) + FIXPT_INT(TJ_3); 148 148 149 149 tsc->coef.a1 = FIXPT_DIV(FIXPT_INT(thcode[1] - thcode[2]),