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 <zyc@rock-chips.com>
Reviewed-on: https://chromium-review.googlesource.com/942721
Commit-Ready: Tomasz Figa <tfiga@chromium.org>
Tested-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
This commit is contained in:
ZhongYiChong
2018-03-01 16:16:03 +08:00
committed by Tao Huang
parent 279b12b8a7
commit 24ebbb8f01

View File

@@ -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(&params_vdev->config_lock);
list_del(&cur_buf->queue);
spin_unlock(&params_vdev->config_lock);