Re: [RFC PATCH v6 1/8] drivers: thermal: tsens: use get_temp for tsens_valid
flat view
From: Amit Kucheria <amitk@kernel.org>
Date: 2020-11-22 19:35:46
Also in:
linux-arm-msm, linux-pm, lkml
Hi Ansuel, My apologies for being tardy in reviewing this series. Career changes... On Fri, Aug 14, 2020 at 7:12 PM Ansuel Smith [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Use the driver get_temp function instead of force to use the generic get temp function. This is needed as tsens v0 version use a custom function to get the real temperature. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> --- drivers/thermal/qcom/tsens.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)diff --git a/drivers/thermal/qcom/tsens.c b/drivers/thermal/qcom/tsens.c index 9af6f71ab640..9fe9a2b26705 100644 --- a/drivers/thermal/qcom/tsens.c +++ b/drivers/thermal/qcom/tsens.c@@ -580,7 +580,6 @@ int get_temp_tsens_valid(const struct tsens_sensor *s, int *temp) { struct tsens_priv *priv = s->priv; int hw_id = s->hw_id; - u32 temp_idx = LAST_TEMP_0 + hw_id; u32 valid_idx = VALID_0 + hw_id; u32 valid; int ret;@@ -600,9 +599,9 @@ int get_temp_tsens_valid(const struct tsens_sensor *s, int *temp) } /* Valid bit is set, OK to read the temperature */ - *temp = tsens_hw_to_mC(s, temp_idx); + ret = priv->ops->get_temp(s, temp);
This is wrong. .get_temp is set to get_temp_tsens_valid() for v1 and v2 platforms. So you've just broken all those platforms by creating a recursive loop. I assume you were trying to use the common interrupt code which currently uses get_temp_tsens_valid()? I suggest trying to add 8960 support to tsens_hw_to_mC().
- return 0; + return ret; } int get_temp_common(const struct tsens_sensor *s, int *temp) -- 2.27.0