summaryrefslogtreecommitdiffstats
path: root/drivers/iio/light
diff options
context:
space:
mode:
authorJonathan Cameron <Jonathan.Cameron@huawei.com>2021-05-09 12:33:28 +0100
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2021-05-17 13:54:25 +0100
commita2fa3debc12e4a401a4c6febc1804036a62f1e31 (patch)
treee5e149a155923429cdf81e5507f3236a35626feb /drivers/iio/light
parent41120ebbb1eb5e9dec93320e259d5b2c93226073 (diff)
downloadlinux-a2fa3debc12e4a401a4c6febc1804036a62f1e31.tar.gz
linux-a2fa3debc12e4a401a4c6febc1804036a62f1e31.tar.bz2
linux-a2fa3debc12e4a401a4c6febc1804036a62f1e31.zip
iio: light: isl29028: Balance runtime pm + use pm_runtime_resume_and_get()
In remove this driver called pm_runtime_put_noidle() but there is no matching get operation. This does not cause any problems because the reference counter will not change if already zero, but it does make the code harder to reason about so should be dropped. Whilst we are here, use pm_runtime_resume_and_get() to replace open coded version. Found using coccicheck script under review at: https://lore.kernel.org/lkml/20210427141946.2478411-1-Julia.Lawall@inria.fr/ Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Cc: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Link: https://lore.kernel.org/r/20210509113354.660190-3-jic23@kernel.org
Diffstat (limited to 'drivers/iio/light')
-rw-r--r--drivers/iio/light/isl29028.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/iio/light/isl29028.c b/drivers/iio/light/isl29028.c
index 2f8b494f3e08..9de3262aa688 100644
--- a/drivers/iio/light/isl29028.c
+++ b/drivers/iio/light/isl29028.c
@@ -339,9 +339,7 @@ static int isl29028_set_pm_runtime_busy(struct isl29028_chip *chip, bool on)
int ret;
if (on) {
- ret = pm_runtime_get_sync(dev);
- if (ret < 0)
- pm_runtime_put_noidle(dev);
+ ret = pm_runtime_resume_and_get(dev);
} else {
pm_runtime_mark_last_busy(dev);
ret = pm_runtime_put_autosuspend(dev);
@@ -647,7 +645,6 @@ static int isl29028_remove(struct i2c_client *client)
pm_runtime_disable(&client->dev);
pm_runtime_set_suspended(&client->dev);
- pm_runtime_put_noidle(&client->dev);
return isl29028_clear_configure_reg(chip);
}