From: Jonathan Cameron Date: Sun, 9 May 2021 11:33:35 +0000 (+0100) Subject: iio: imu: kmx61: Balance runtime pm + use pm_runtime_resume_and_get() X-Git-Tag: v5.15~790^2~180^2~72 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2d082b6ed26472342beb23ec275c8531afb502b2;p=platform%2Fkernel%2Flinux-starfive.git iio: imu: kmx61: Balance runtime pm + use pm_runtime_resume_and_get() No point in calling pm_runtime_put_noidle() that isn't balancing a get. Note no actual impact because the runtime pm core protects against a negative reference counter. For the pm_runtime_resume_and_get() main interest is in clearing out this old pattern to avoid it getting coppied into new submissions. Signed-off-by: Jonathan Cameron Reviewed-by: Mauro Carvalho Chehab Link: https://lore.kernel.org/r/20210509113354.660190-10-jic23@kernel.org --- diff --git a/drivers/iio/imu/kmx61.c b/drivers/iio/imu/kmx61.c index d3e06ce9..1dabfd6 100644 --- a/drivers/iio/imu/kmx61.c +++ b/drivers/iio/imu/kmx61.c @@ -750,7 +750,7 @@ static int kmx61_set_power_state(struct kmx61_data *data, bool on, u8 device) } if (on) { - ret = pm_runtime_get_sync(&data->client->dev); + ret = pm_runtime_resume_and_get(&data->client->dev); } else { pm_runtime_mark_last_busy(&data->client->dev); ret = pm_runtime_put_autosuspend(&data->client->dev); @@ -759,8 +759,6 @@ static int kmx61_set_power_state(struct kmx61_data *data, bool on, u8 device) dev_err(&data->client->dev, "Failed: kmx61_set_power_state for %d, ret %d\n", on, ret); - if (on) - pm_runtime_put_noidle(&data->client->dev); return ret; } @@ -1426,7 +1424,6 @@ static int kmx61_remove(struct i2c_client *client) pm_runtime_disable(&client->dev); pm_runtime_set_suspended(&client->dev); - pm_runtime_put_noidle(&client->dev); if (client->irq > 0) { iio_triggered_buffer_cleanup(data->acc_indio_dev);