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@xxxxxxxxxx> 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@xxxxxxxxxx> > 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@xxxxxxxxxx> > > > --- > > 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