Thread (16 messages) 16 messages, 3 authors, 2020-11-29

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help