Commit deaf1120 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Mauro Carvalho Chehab
Browse files

media: rkisp1: Move sensor .s_stream() call to ISP



Move the calls to the active sensor's .s_stream() operation to the ISP
subdev's .s_stream(). This groups all handling of the active sensor in
one place, preparing for a rework of that code.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarDafna Hirschfeld <dafna@fastmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent fc890f00
Loading
Loading
Loading
Loading
+1 −11
Original line number Diff line number Diff line
@@ -926,11 +926,8 @@ static void rkisp1_pipeline_stream_disable(struct rkisp1_capture *cap)
	 * If the other capture is streaming, isp and sensor nodes shouldn't
	 * be disabled, skip them.
	 */
	if (rkisp1->pipe.streaming_count < 2) {
		v4l2_subdev_call(rkisp1->active_sensor->sd, video, s_stream,
				 false);
	if (rkisp1->pipe.streaming_count < 2)
		v4l2_subdev_call(&rkisp1->isp.sd, video, s_stream, false);
	}

	v4l2_subdev_call(&rkisp1->resizer_devs[cap->id].sd, video, s_stream,
			 false);
@@ -966,15 +963,8 @@ static int rkisp1_pipeline_stream_enable(struct rkisp1_capture *cap)
	if (ret)
		goto err_disable_rsz;

	ret = v4l2_subdev_call(rkisp1->active_sensor->sd, video, s_stream,
			       true);
	if (ret)
		goto err_disable_isp;

	return 0;

err_disable_isp:
	v4l2_subdev_call(&rkisp1->isp.sd, video, s_stream, false);
err_disable_rsz:
	v4l2_subdev_call(&rkisp1->resizer_devs[cap->id].sd, video, s_stream,
			 false);
+11 −0
Original line number Diff line number Diff line
@@ -857,6 +857,9 @@ static int rkisp1_isp_s_stream(struct v4l2_subdev *sd, int enable)
	int ret = 0;

	if (!enable) {
		v4l2_subdev_call(rkisp1->active_sensor->sd, video, s_stream,
				 false);

		rkisp1_isp_stop(rkisp1);
		rkisp1_mipi_csi2_stop(rkisp1->active_sensor);
		return 0;
@@ -886,6 +889,14 @@ static int rkisp1_isp_s_stream(struct v4l2_subdev *sd, int enable)

	rkisp1_isp_start(rkisp1);

	ret = v4l2_subdev_call(rkisp1->active_sensor->sd, video, s_stream,
			       true);
	if (ret) {
		rkisp1_isp_stop(rkisp1);
		rkisp1_mipi_csi2_stop(rkisp1->active_sensor);
		goto mutex_unlock;
	}

mutex_unlock:
	mutex_unlock(&isp->ops_lock);
	return ret;