mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
iio: hid: trigger: Balance runtime pm + use pm_runtime_resume_and_get()
The call to pm_runtime_put_noidle() in remove() callback is not balanced by any gets Note this doesn't cause any problems beyond reader confusion as the runtime pm core protects against the reference counter going negative. Whilst here, use pm_runtiem_resume_and_get() to simplify code a little. Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Link: https://lore.kernel.org/r/20210509113354.660190-9-jic23@kernel.org
This commit is contained in:
parent
9504db5765
commit
af51ec8c92
1 changed files with 2 additions and 6 deletions
|
@ -163,18 +163,15 @@ int hid_sensor_power_state(struct hid_sensor_common *st, bool state)
|
|||
|
||||
if (state) {
|
||||
atomic_inc(&st->user_requested_state);
|
||||
ret = pm_runtime_get_sync(&st->pdev->dev);
|
||||
ret = pm_runtime_resume_and_get(&st->pdev->dev);
|
||||
} else {
|
||||
atomic_dec(&st->user_requested_state);
|
||||
pm_runtime_mark_last_busy(&st->pdev->dev);
|
||||
pm_runtime_use_autosuspend(&st->pdev->dev);
|
||||
ret = pm_runtime_put_autosuspend(&st->pdev->dev);
|
||||
}
|
||||
if (ret < 0) {
|
||||
if (state)
|
||||
pm_runtime_put_noidle(&st->pdev->dev);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
#else
|
||||
|
@ -222,7 +219,6 @@ void hid_sensor_remove_trigger(struct iio_dev *indio_dev,
|
|||
pm_runtime_disable(&attrb->pdev->dev);
|
||||
|
||||
pm_runtime_set_suspended(&attrb->pdev->dev);
|
||||
pm_runtime_put_noidle(&attrb->pdev->dev);
|
||||
|
||||
cancel_work_sync(&attrb->work);
|
||||
iio_trigger_unregister(attrb->trigger);
|
||||
|
|
Loading…
Reference in a new issue