From 79285baea4eb501a7152dfeabb77f4944a4feefa Mon Sep 17 00:00:00 2001 From: Hu Kejun Date: Tue, 31 May 2022 16:56:01 +0800 Subject: [PATCH] media: rockchip: isp: set afen off before config af to avoid rkisp_stats_get_rawaebig_meas_ddr fail Signed-off-by: Hu Kejun Change-Id: Ib3122448d1e756dc41bf3b082e9acffa50531d6c --- drivers/media/platform/rockchip/isp/isp_params_v3x.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/rockchip/isp/isp_params_v3x.c b/drivers/media/platform/rockchip/isp/isp_params_v3x.c index c0c02f50c8f0..9e0b6934a818 100644 --- a/drivers/media/platform/rockchip/isp/isp_params_v3x.c +++ b/drivers/media/platform/rockchip/isp/isp_params_v3x.c @@ -1019,6 +1019,15 @@ isp_rawaf_config(struct rkisp_isp_params_vdev *params_vdev, size_t num_of_win = min_t(size_t, ARRAY_SIZE(arg->win), arg->num_afm_win); + /* To config must be off, store the current status firstly */ + ctrl = isp3_param_read(params_vdev, ISP3X_RAWAF_CTRL, id); + if (ctrl & ISP3X_RAWAF_EN) { + var = ctrl; + var &= ~ISP3X_REG_WR_MASK; + var &= ~ISP3X_RAWAF_EN; + isp3_param_write(params_vdev, var, ISP3X_RAWAF_CTRL, id); + } + for (i = 0; i < num_of_win; i++) { h_size = arg->win[i].h_size; v_size = arg->win[i].v_size; @@ -1093,7 +1102,6 @@ isp_rawaf_config(struct rkisp_isp_params_vdev *params_vdev, if (viir_en == 0) v1_fir_sel = 0; - ctrl = isp3_param_read(params_vdev, ISP3X_RAWAF_CTRL, id); ctrl &= ISP3X_RAWAF_EN; if (arg->hiir_en) { ctrl |= ISP3X_RAWAF_HIIR_EN;