| From 04d5cb367f8cd2445ff35ae8f1ad073125641ea4 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 5 Jun 2021 10:52:11 +0200 |
| Subject: thermal/drivers/rcar_gen3_thermal: Fix coefficient calculations |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> |
| |
| [ Upstream commit 8946187ab57ffd02088e50256c73dd31f49db06d ] |
| |
| 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 |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/thermal/rcar_gen3_thermal.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/thermal/rcar_gen3_thermal.c b/drivers/thermal/rcar_gen3_thermal.c |
| index 75c69fe6e955..c02922d2d1d5 100644 |
| --- a/drivers/thermal/rcar_gen3_thermal.c |
| +++ b/drivers/thermal/rcar_gen3_thermal.c |
| @@ -142,7 +142,7 @@ static void rcar_gen3_thermal_calc_coefs(struct rcar_gen3_thermal_tsc *tsc, |
| * Division is not scaled in BSP and if scaled it might overflow |
| * the dividend (4095 * 4095 << 14 > INT_MAX) so keep it unscaled |
| */ |
| - tsc->tj_t = (FIXPT_INT((ptat[1] - ptat[2]) * 157) |
| + tsc->tj_t = (FIXPT_INT((ptat[1] - ptat[2]) * (ths_tj_1 - TJ_3)) |
| / (ptat[0] - ptat[2])) + FIXPT_INT(TJ_3); |
| |
| tsc->coef.a1 = FIXPT_DIV(FIXPT_INT(thcode[1] - thcode[2]), |
| -- |
| 2.30.2 |
| |