From a63cec68e5107c8dbe49dea7a1b0944ed9440340 Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Thu, 30 Jun 2022 20:17:50 +0800 Subject: [PATCH] media: rockchip: isp: fix isp30 cgc limit config cgc limit bug in hw, cproc limit replace it. Change-Id: Id95035e43c471ac11b7e865b55fb4882916ee639 Signed-off-by: Cai YiWei --- .../media/platform/rockchip/isp/isp_params_v3x.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/media/platform/rockchip/isp/isp_params_v3x.c b/drivers/media/platform/rockchip/isp/isp_params_v3x.c index e7bd20dc262c..b95a13bfc324 100644 --- a/drivers/media/platform/rockchip/isp/isp_params_v3x.c +++ b/drivers/media/platform/rockchip/isp/isp_params_v3x.c @@ -3678,22 +3678,20 @@ isp_cgc_config(struct rkisp_isp_params_vdev *params_vdev, params_vdev->quantization = V4L2_QUANTIZATION_FULL_RANGE; val &= ~(ISP3X_SW_CGC_YUV_LIMIT | ISP3X_SW_CGC_RATIO_EN); if (arg->yuv_limit) { - val |= ISP3X_SW_CGC_YUV_LIMIT; params_vdev->quantization = V4L2_QUANTIZATION_LIM_RANGE; } if (arg->ratio_en) val |= ISP3X_SW_CGC_RATIO_EN; isp3_param_write(params_vdev, val, ISP3X_ISP_CTRL0, id); + /* cproc limit replace cgc limit config */ cproc_ctrl = isp3_param_read(params_vdev, ISP3X_CPROC_CTRL, id); - if (cproc_ctrl & CIF_C_PROC_CTR_ENABLE) { - val = CIF_C_PROC_YOUT_FULL | CIF_C_PROC_YIN_FULL | CIF_C_PROC_COUT_FULL; - if (arg->yuv_limit) - cproc_ctrl &= ~val; - else - cproc_ctrl |= val; - isp3_param_write(params_vdev, cproc_ctrl, ISP3X_CPROC_CTRL, id); + if (arg->yuv_limit) { + cproc_ctrl = CIF_C_PROC_CTR_ENABLE; + } else { + cproc_ctrl |= CIF_C_PROC_YOUT_FULL | CIF_C_PROC_YIN_FULL | CIF_C_PROC_COUT_FULL; } + isp3_param_write(params_vdev, cproc_ctrl, ISP3X_CPROC_CTRL, id); eff_ctrl = isp3_param_read(params_vdev, ISP3X_IMG_EFF_CTRL, id); if (eff_ctrl & CIF_IMG_EFF_CTRL_ENABLE) {