Commit d781dce6 authored by Lad Prabhakar's avatar Lad Prabhakar Committed by Mauro Carvalho Chehab
Browse files

media: i2c: ov5645: Make sure to call PM functions



Make sure we call the PM functions while s_stream(0) even in case of
errors in the code flow.

v4l2-core takes care of warning the user so no need to add a warning
message in the driver.

Suggested-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent 9a018670
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -998,15 +998,12 @@ static int ov5645_s_stream(struct v4l2_subdev *subdev, int enable)
	} else {
		ret = ov5645_write_reg(ov5645, OV5645_IO_MIPI_CTRL00, 0x40);
		if (ret < 0)
			return ret;
			goto stream_off_rpm_put;

		ret = ov5645_write_reg(ov5645, OV5645_SYSTEM_CTRL0,
				       OV5645_SYSTEM_CTRL0_STOP);
		if (ret < 0)
			return ret;

		pm_runtime_mark_last_busy(ov5645->dev);
		pm_runtime_put_autosuspend(ov5645->dev);
		goto stream_off_rpm_put;
	}

	return 0;
@@ -1014,6 +1011,11 @@ static int ov5645_s_stream(struct v4l2_subdev *subdev, int enable)
err_rpm_put:
	pm_runtime_put_sync(ov5645->dev);
	return ret;

stream_off_rpm_put:
	pm_runtime_mark_last_busy(ov5645->dev);
	pm_runtime_put_autosuspend(ov5645->dev);
	return ret;
}

static const struct v4l2_subdev_video_ops ov5645_video_ops = {