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);