Message ID | 20220614191127.3420492-12-paul.elder@ideasonboard.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | media: rkisp1: Cleanups and add support for i.MX8MP | expand |
On 15.06.2022 04:10, Paul Elder wrote: >From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > >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> >--- > .../media/platform/rockchip/rkisp1/rkisp1-capture.c | 12 +----------- > drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c | 11 +++++++++++ > 2 files changed, 12 insertions(+), 11 deletions(-) > >diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c >index 94a0d787a312..9edaa95fa44c 100644 >--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c >+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c >@@ -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); >diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c >index 89577119b571..58cf6d21f1eb 100644 >--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c >+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c >@@ -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; >-- >2.30.2 >
diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c index 94a0d787a312..9edaa95fa44c 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c @@ -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); diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c index 89577119b571..58cf6d21f1eb 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c @@ -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;