Thread (6 messages) 6 messages, 4 authors, 2021-09-09

Re: [PATCH] thermal: qcom: spmi-adc-tm5: Don't abort probing if a sensor is not used

From: Dmitry Baryshkov <hidden>
Date: 2021-08-24 00:08:51
Also in: linux-arm-msm, lkml

On Mon, 23 Aug 2021 at 23:47, Matthias Kaehlcke [off-list ref] wrote:
adc_tm5_register_tzd() registers the thermal zone sensors for all
channels of the thermal monitor. If the registration of one channel
fails the function skips the processing of the remaining channels
and returns an error, which results in _probe() being aborted.

One of the reasons the registration could fail is that none of the
thermal zones is using the channel/sensor, which hardly is a critical
error (if it is an error at all). If this case is detected emit a
warning and continue with processing the remaining channels.

Fixes: ca66dca5eda6 ("thermal: qcom: add support for adc-tm5 PMIC thermal monitor")
Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Dmitry Baryshkov <redacted>
quoted hunk ↗ jump to hunk
---

 drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/drivers/thermal/qcom/qcom-spmi-adc-tm5.c b/drivers/thermal/qcom/qcom-spmi-adc-tm5.c
index 232fd0b33325..8494cc04aa21 100644
--- a/drivers/thermal/qcom/qcom-spmi-adc-tm5.c
+++ b/drivers/thermal/qcom/qcom-spmi-adc-tm5.c
@@ -359,6 +359,12 @@ static int adc_tm5_register_tzd(struct adc_tm5_chip *adc_tm)
                                                           &adc_tm->channels[i],
                                                           &adc_tm5_ops);
                if (IS_ERR(tzd)) {
+                       if (PTR_ERR(tzd) == -ENODEV) {
+                               dev_warn(adc_tm->dev, "thermal sensor on channel %d is not used\n",
+                                        adc_tm->channels[i].channel);
+                               continue;
+                       }
+
                        dev_err(adc_tm->dev, "Error registering TZ zone for channel %d: %ld\n",
                                adc_tm->channels[i].channel, PTR_ERR(tzd));
                        return PTR_ERR(tzd);
--
2.33.0.rc2.250.ged5fa647cd-goog

-- 
With best wishes
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help