From a9a5d8c2dde530eaf149892a259adec38bf252e1 Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Mon, 8 May 2023 14:30:49 +0800 Subject: [PATCH] media: rockchip: isp: fix error for multi sensor with scale up case Change-Id: If9e781820ed0be41096c29fbdffa8114458b8597 Signed-off-by: Cai YiWei --- drivers/media/platform/rockchip/isp/rkisp.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/media/platform/rockchip/isp/rkisp.c b/drivers/media/platform/rockchip/isp/rkisp.c index 34569c510484..2cc336ba5317 100644 --- a/drivers/media/platform/rockchip/isp/rkisp.c +++ b/drivers/media/platform/rockchip/isp/rkisp.c @@ -665,6 +665,20 @@ void rkisp_trigger_read_back(struct rkisp_device *dev, u8 dma2frm, u32 mode, boo rkisp_config_cmsk(dev); rkisp_stream_frame_start(dev, 0); if (!hw->is_single && !is_try) { + /* multi sensor need to reset isp resize mode if scale up */ + val = 0; + if (rkisp_read(dev, ISP3X_MAIN_RESIZE_CTRL, true) & 0xf0) + val |= BIT(3); + if (dev->isp_ver != ISP_V32_L && + rkisp_read(dev, ISP3X_SELF_RESIZE_CTRL, true) & 0xf0) + val |= BIT(4); + if (rkisp_read(dev, ISP32_BP_RESIZE_CTRL, true) & 0xf0) + val |= BIT(12); + if (val) { + writel(val, hw->base_addr + CIF_IRCL); + writel(0, hw->base_addr + CIF_IRCL); + } + rkisp_update_regs(dev, CTRL_VI_ISP_PATH, SUPER_IMP_COLOR_CR); rkisp_update_regs(dev, DUAL_CROP_M_H_OFFS, ISP3X_DUAL_CROP_FBC_V_SIZE); rkisp_update_regs(dev, ISP_ACQ_H_OFFS, DUAL_CROP_CTRL);