Message ID | ab2332b27d0043574a72a42ec8d757fd06279cc6.1619621413.git.mchehab+huawei@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Address some issues with PM runtime at media subsystem | expand |
On Wed, 28 Apr 2021 16:51:44 +0200 Mauro Carvalho Chehab <mchehab+huawei@kernel.org> wrote: > Commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter") > added pm_runtime_resume_and_get() in order to automatically handle > dev->power.usage_count decrement on errors. > > Use the new API, in order to cleanup the error check logic. > > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Could add that pm_runtime_put() should have been pm_runtime_put_noidle() inorder to not potentially result in a call to runtime suspend when we never resumed in the first place. Otherwise reasonable cleanup. Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > --- > drivers/staging/media/ipu3/ipu3.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/staging/media/ipu3/ipu3.c b/drivers/staging/media/ipu3/ipu3.c > index ee1bba6bdcac..8e1e9e46e604 100644 > --- a/drivers/staging/media/ipu3/ipu3.c > +++ b/drivers/staging/media/ipu3/ipu3.c > @@ -392,10 +392,9 @@ int imgu_s_stream(struct imgu_device *imgu, int enable) > } > > /* Set Power */ > - r = pm_runtime_get_sync(dev); > + r = pm_runtime_resume_and_get(dev); > if (r < 0) { > dev_err(dev, "failed to set imgu power\n"); > - pm_runtime_put(dev); > return r; > } >
On Fri, Apr 30, 2021 at 06:03:38PM +0100, Jonathan Cameron wrote: > On Wed, 28 Apr 2021 16:51:44 +0200 > Mauro Carvalho Chehab <mchehab+huawei@kernel.org> wrote: > > > Commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter") > > added pm_runtime_resume_and_get() in order to automatically handle > > dev->power.usage_count decrement on errors. > > > > Use the new API, in order to cleanup the error check logic. > > > > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> > Could add that pm_runtime_put() should have been pm_runtime_put_noidle() > inorder to not potentially result in a call to runtime suspend when > we never resumed in the first place. No, that would never happen anyway and any pm_runtime_put() will do even if pm_runtime_put_noidle() is the natural choice in this case to balance the counter. > Otherwise reasonable cleanup. > > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > > > --- > > drivers/staging/media/ipu3/ipu3.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/drivers/staging/media/ipu3/ipu3.c b/drivers/staging/media/ipu3/ipu3.c > > index ee1bba6bdcac..8e1e9e46e604 100644 > > --- a/drivers/staging/media/ipu3/ipu3.c > > +++ b/drivers/staging/media/ipu3/ipu3.c > > @@ -392,10 +392,9 @@ int imgu_s_stream(struct imgu_device *imgu, int enable) > > } > > > > /* Set Power */ > > - r = pm_runtime_get_sync(dev); > > + r = pm_runtime_resume_and_get(dev); > > if (r < 0) { > > dev_err(dev, "failed to set imgu power\n"); > > - pm_runtime_put(dev); > > return r; > > } Johan
diff --git a/drivers/staging/media/ipu3/ipu3.c b/drivers/staging/media/ipu3/ipu3.c index ee1bba6bdcac..8e1e9e46e604 100644 --- a/drivers/staging/media/ipu3/ipu3.c +++ b/drivers/staging/media/ipu3/ipu3.c @@ -392,10 +392,9 @@ int imgu_s_stream(struct imgu_device *imgu, int enable) } /* Set Power */ - r = pm_runtime_get_sync(dev); + r = pm_runtime_resume_and_get(dev); if (r < 0) { dev_err(dev, "failed to set imgu power\n"); - pm_runtime_put(dev); return r; }
Commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter") added pm_runtime_resume_and_get() in order to automatically handle dev->power.usage_count decrement on errors. Use the new API, in order to cleanup the error check logic. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> --- drivers/staging/media/ipu3/ipu3.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)