The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH] iio: flow: slf3s: restart measurement if VDD disable fails
@ 2026-08-05 11:02 Linmao Li
  2026-08-05 12:59 ` David Lechner
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Linmao Li @ 2026-08-05 11:02 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: Wadim Mueller, Maxwell Doose, David Lechner, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel, Linmao Li

slf3s_suspend() stops continuous measurement before disabling VDD. If
regulator_disable() fails while the supply remains enabled, the system
sleep transition is aborted. Since the PM core does not call the
corresponding resume callback for a device whose suspend callback failed,
the sensor remains idle after the system returns to the running state and
subsequent reads fail.

Attempt to restart continuous measurement on this error path. Preserve the
regulator error and warn if restarting the measurement also fails.

Fixes: d240b0b8a1ce ("iio: flow: add Sensirion SLF3S liquid flow sensor driver")
Signed-off-by: Linmao Li <lilinmao@kylinos.cn>
---
 drivers/iio/flow/slf3s.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/flow/slf3s.c b/drivers/iio/flow/slf3s.c
index dfa7c14090454..75ee82fbd3295 100644
--- a/drivers/iio/flow/slf3s.c
+++ b/drivers/iio/flow/slf3s.c
@@ -462,6 +462,7 @@ static int slf3s_suspend(struct device *dev)
 {
 	struct iio_dev *indio_dev = dev_get_drvdata(dev);
 	struct slf3s_data *sf = iio_priv(indio_dev);
+	int restart_ret;
 	int ret;
 
 	guard(mutex)(&sf->lock);
@@ -470,7 +471,16 @@ static int slf3s_suspend(struct device *dev)
 	if (ret)
 		return ret;
 
-	return regulator_disable(sf->vdd);
+	ret = regulator_disable(sf->vdd);
+	if (!ret)
+		return 0;
+
+	restart_ret = slf3s_start_meas(sf, sf->medium);
+	if (restart_ret)
+		dev_warn(dev, "failed to restart measurement after suspend failure: %d\n",
+			 restart_ret);
+
+	return ret;
 }
 
 static int slf3s_resume(struct device *dev)

base-commit: 0efaefce4e95a3331550329c0078b2fb38b3ff1f
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-08-06 13:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-05 11:02 [PATCH] iio: flow: slf3s: restart measurement if VDD disable fails Linmao Li
2026-08-05 12:59 ` David Lechner
2026-08-06  2:18   ` Linmao Li
2026-08-05 16:45 ` Maxwell Doose
2026-08-06  2:21   ` Linmao Li
2026-08-06  9:39 ` Nuno Sá
2026-08-06 12:55   ` Wadim Mueller
2026-08-06 13:05     ` Nuno Sá

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox