From 360cca1de4a4b6f52a6cdc6806db4bdcd1e465b5 Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Thu, 19 Aug 2021 15:52:07 +0800 Subject: [PATCH] media: rockchip: isp: fix sp no output when hdr dynamic switch Change-Id: Idbb35a9c40e62fbc876345aaa516a842416c1bb3 Signed-off-by: Cai YiWei --- drivers/media/platform/rockchip/isp/capture_v20.c | 4 ++++ drivers/media/platform/rockchip/isp/rkisp.c | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/rockchip/isp/capture_v20.c b/drivers/media/platform/rockchip/isp/capture_v20.c index 868a02901dcd..a1a6fb1539d2 100644 --- a/drivers/media/platform/rockchip/isp/capture_v20.c +++ b/drivers/media/platform/rockchip/isp/capture_v20.c @@ -576,6 +576,10 @@ static int rkisp_stream_config_dcrop(struct rkisp_stream *stream, bool async) rkisp_disable_dcrop(stream, async); v4l2_dbg(1, rkisp_debug, &dev->v4l2_dev, "stream %d crop disabled\n", stream->id); + if (RKMODULE_EXTEND_LINE != 0) { + rkisp_write(dev, stream->config->dual_crop.h_size, src_w, false); + rkisp_write(dev, stream->config->dual_crop.v_size, src_h, false); + } return 0; } diff --git a/drivers/media/platform/rockchip/isp/rkisp.c b/drivers/media/platform/rockchip/isp/rkisp.c index c4f1385cd21e..82198a861951 100644 --- a/drivers/media/platform/rockchip/isp/rkisp.c +++ b/drivers/media/platform/rockchip/isp/rkisp.c @@ -515,15 +515,16 @@ void rkisp_trigger_read_back(struct rkisp_device *dev, u8 dma2frm, u32 mode, boo } if (dev->isp_ver == ISP_V20 && dev->dmarx_dev.trigger == T_MANUAL && !is_try) { - if (dev->rd_mode != rd_mode && dev->br_dev.en) { + if (dev->rd_mode != rd_mode && RKMODULE_EXTEND_LINE != 0) { tmp = dev->isp_sdev.in_crop.height; val = rkisp_read(dev, CIF_DUAL_CROP_CTRL, false); if (rd_mode == HDR_RDBK_FRAME1) { - val |= CIF_DUAL_CROP_MP_MODE_YUV; + val |= CIF_DUAL_CROP_MP_MODE_YUV | CIF_DUAL_CROP_SP_MODE_YUV; tmp += RKMODULE_EXTEND_LINE; } else { - val &= ~CIF_DUAL_CROP_MP_MODE_YUV; + val &= ~(CIF_DUAL_CROP_MP_MODE_YUV | CIF_DUAL_CROP_SP_MODE_YUV); } + val |= CIF_DUAL_CROP_CFG_UPD; rkisp_write(dev, CIF_DUAL_CROP_CTRL, val, false); rkisp_write(dev, CIF_ISP_ACQ_V_SIZE, tmp, false); rkisp_write(dev, CIF_ISP_OUT_V_SIZE, tmp, false);