Hi Prabhakar, Thank you for the patch. On Wed, Mar 10, 2021 at 12:20:14PM +0000, Lad Prabhakar wrote: > The runtime PM use-count gets incremented in imx219_set_stream() call > when streaming is started this needs to be balanced by calling > pm_runtime_put() upon failure to start stream in resume callback. > > Fixes: 1283b3b8f82b9 ("media: i2c: Add driver for Sony IMX219 sensor") > Reported-by: Pavel Machek <pavel@xxxxxxx> > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> > --- > drivers/media/i2c/imx219.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c > index 87c021de1460..afffc85cd265 100644 > --- a/drivers/media/i2c/imx219.c > +++ b/drivers/media/i2c/imx219.c > @@ -1184,6 +1184,7 @@ static int __maybe_unused imx219_resume(struct device *dev) > { > struct v4l2_subdev *sd = dev_get_drvdata(dev); > struct imx219 *imx219 = to_imx219(sd); > + struct i2c_client *client; > int ret; > > mutex_lock(&imx219->mutex); > @@ -1197,7 +1198,9 @@ static int __maybe_unused imx219_resume(struct device *dev) > return 0; > > error: > + client = v4l2_get_subdevdata(&imx219->sd); > imx219_stop_streaming(imx219); > + pm_runtime_put(&client->dev); > imx219->streaming = false; > __v4l2_ctrl_grab(imx219->vflip, false); > __v4l2_ctrl_grab(imx219->hflip, false); Similarly to the __v4l2_ctrl_grab(), it could be better to move pm_runtime_put() to imx219_stop_streaming(). -- Regards, Laurent Pinchart