From 24ebbb8f015a34e4510f119da87223b77a294e1c Mon Sep 17 00:00:00 2001 From: ZhongYiChong Date: Thu, 1 Mar 2018 16:16:03 +0800 Subject: [PATCH] media: rockchip: isp1: Update new ISP parameters immediately For those sub modules that have shadow registers in core isp, the new programing parameters would not be active if both CIF_ISP_CTRL_ISP_CFG_UPD_PERMANENT and CFG_UPD are not set. Now we configure CFG_UPD to force update the shadow registers when new ISP parameters are configured. BUG=b:36227021 TEST=scarlet can preview, LSC data table can be switched. Change-Id: I804ddfc45b3c2fca9a6f51627af4264a25075070 Signed-off-by: ZhongYiChong Reviewed-on: https://chromium-review.googlesource.com/942721 Commit-Ready: Tomasz Figa Tested-by: Jeffy Chen Reviewed-by: Tomasz Figa --- drivers/media/platform/rockchip/isp1/isp_params.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/media/platform/rockchip/isp1/isp_params.c b/drivers/media/platform/rockchip/isp1/isp_params.c index 136e2393d714..913402a4faa0 100644 --- a/drivers/media/platform/rockchip/isp1/isp_params.c +++ b/drivers/media/platform/rockchip/isp1/isp_params.c @@ -1189,8 +1189,16 @@ void rkisp1_params_isr(struct rkisp1_isp_params_vdev *params_vdev, u32 isp_mis) new_params = (struct rkisp1_isp_params_cfg *)(cur_buf->vaddr[0]); if (isp_mis & CIF_ISP_FRAME) { + u32 isp_ctrl; + __isp_isr_other_config(params_vdev, new_params); __isp_isr_meas_config(params_vdev, new_params); + + /* update shadow register immediately */ + isp_ctrl = rkisp1_ioread32(params_vdev, CIF_ISP_CTRL); + isp_ctrl |= CIF_ISP_CTRL_ISP_CFG_UPD; + rkisp1_iowrite32(params_vdev, isp_ctrl, CIF_ISP_CTRL); + spin_lock(¶ms_vdev->config_lock); list_del(&cur_buf->queue); spin_unlock(¶ms_vdev->config_lock);