On Wed, May 18, 2022 at 06:54:08PM +0300, Sakari Ailus wrote: > The s_stream callback had several issues: > > - If pm_runtime_get_sync() fails, the usage_count is not put. > > - The sensor wasn't suspended if s_stream(subdev, 1) failed. > > Fix this. Perhaps late, but nevertheless Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > Fixes: ("media: i2c: Add pm_runtime support to ov7251") > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > --- > drivers/media/i2c/ov7251.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/i2c/ov7251.c b/drivers/media/i2c/ov7251.c > index 0e7be15bc20a7..603a4c7049e69 100644 > --- a/drivers/media/i2c/ov7251.c > +++ b/drivers/media/i2c/ov7251.c > @@ -1340,7 +1340,7 @@ static int ov7251_s_stream(struct v4l2_subdev *subdev, int enable) > if (enable) { > ret = pm_runtime_get_sync(ov7251->dev); > if (ret < 0) > - goto unlock_out; > + goto err_power_down; > > ret = ov7251_pll_configure(ov7251); > if (ret) { > @@ -1372,12 +1372,11 @@ static int ov7251_s_stream(struct v4l2_subdev *subdev, int enable) > pm_runtime_put(ov7251->dev); > } > > -unlock_out: > mutex_unlock(&ov7251->lock); > return ret; > > err_power_down: > - pm_runtime_put_noidle(ov7251->dev); > + pm_runtime_put(ov7251->dev); > mutex_unlock(&ov7251->lock); > return ret; > } > -- > 2.30.2 > -- With Best Regards, Andy Shevchenko