media: rkisp1: Move sensor .s_stream() call to ISP
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Tue, 14 Jun 2022 19:10:43 +0000 (20:10 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sun, 17 Jul 2022 11:02:27 +0000 (12:02 +0100)
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: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Dafna Hirschfeld <dafna@fastmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c

index fb14c8aa154caecc47cf51891ad1c998e1eaf42f..d5904c96ff3fcfd4cabb6f72861d4755bb8c96e0 100644 (file)
@@ -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);
index 8aa4c0b855102dbf8bb7820c553703bfae7763fe..689885ac2e84a34a3be2c5842351d5bc42a8fd69 100644 (file)
@@ -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;