From b0ec07ceeb9fc400213151402a7d179d69110cc2 Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Thu, 4 Feb 2021 10:37:42 +0800 Subject: [PATCH] media: rockchip: ispp: check scl stop if fec enable Change-Id: I3bbdd113ca37b1faa2f091eeb255dab056189da9 Signed-off-by: Cai YiWei --- drivers/media/platform/rockchip/ispp/stream.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/rockchip/ispp/stream.c b/drivers/media/platform/rockchip/ispp/stream.c index c983df480023..d8f476d849b2 100644 --- a/drivers/media/platform/rockchip/ispp/stream.c +++ b/drivers/media/platform/rockchip/ispp/stream.c @@ -2369,8 +2369,22 @@ static void fec_work_event(struct rkispp_device *dev, if (!dev->hw_dev->is_single) rkispp_update_regs(dev, RKISPP_FEC, RKISPP_FEC_CROP); writel(FEC_FORCE_UPD, base + RKISPP_CTRL_UPDATE); - if (vdev->nr.is_end) + if (vdev->nr.is_end) { writel(OTHER_FORCE_UPD, base + RKISPP_CTRL_UPDATE); + /* check scale stream stop state */ + for (val = STREAM_S0; val <= STREAM_S2; val++) { + stream = &vdev->stream[val]; + if (stream->streaming && stream->stopping) { + if (stream->ops->is_stopped(stream)) { + stream->stopping = false; + stream->streaming = false; + wake_up(&stream->done); + } else { + stream->ops->stop(stream); + } + } + } + } v4l2_dbg(3, rkispp_debug, &dev->v4l2_dev, "FEC start seq:%d | Y_SHD rd:0x%x\n", seq, readl(base + RKISPP_FEC_RD_Y_BASE_SHD));