From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> There is one path in which we don't do a runtime pm put and so leave the device enabled for ever more. Reported-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> Fixes: 4ac4e086fd8c ("iio: pulsedlight-lidar-lite: add runtime PM") Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> Cc: Matt Ranostay <matt.ranostay@xxxxxxxxxxxx> --- drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c index 822a68ae5e03..ecaeb1e11007 100644 --- a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c +++ b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c @@ -164,7 +164,7 @@ static int lidar_get_measurement(struct lidar_data *data, u16 *reg) ret = lidar_write_control(data, LIDAR_REG_CONTROL_ACQUIRE); if (ret < 0) { dev_err(&client->dev, "cannot send start measurement command"); - return ret; + goto err; } while (tries--) { @@ -188,6 +188,7 @@ static int lidar_get_measurement(struct lidar_data *data, u16 *reg) } ret = -EIO; } +err: pm_runtime_mark_last_busy(&client->dev); pm_runtime_put_autosuspend(&client->dev); -- 2.31.1