diff --git a/drivers/media/platform/rockchip/isp/isp_params_v2x.c b/drivers/media/platform/rockchip/isp/isp_params_v2x.c index 23f3fead9af0..2bfcf834b898 100644 --- a/drivers/media/platform/rockchip/isp/isp_params_v2x.c +++ b/drivers/media/platform/rockchip/isp/isp_params_v2x.c @@ -3137,7 +3137,7 @@ isp_hdrtmo_config(struct rkisp_isp_params_vdev *params_vdev, const struct isp2x_hdrtmo_cfg *arg, enum rkisp_params_type type) { u8 big_en, nobig_en; - u32 value; + u32 value, irq_mask = 0x0; if (type == RKISP_PARAMS_SHD || type == RKISP_PARAMS_ALL) { value = rkisp_ioread32(params_vdev, ISP_HDRTMO_CTRL_CFG); @@ -3175,6 +3175,12 @@ isp_hdrtmo_config(struct rkisp_isp_params_vdev *params_vdev, nobig_en = 0; } + irq_mask = rkisp_ioread32(params_vdev, CIF_ISP_IMSC); + if (arg->cnt_mode & 0x01 && !(irq_mask & ISP2X_HDR_DONE)) { + irq_mask |= ISP2X_HDR_DONE; + rkisp_write(params_vdev->dev, CIF_ISP_IMSC, irq_mask, true); + } + value = rkisp_ioread32(params_vdev, ISP_HDRTMO_CTRL); value &= ISP_HDRTMO_EN; value |= (arg->cnt_vsize & 0x1FFF) << 16 | diff --git a/drivers/media/platform/rockchip/isp/rkisp.c b/drivers/media/platform/rockchip/isp/rkisp.c index 84dcf3493b07..fb9f52cd1eb8 100644 --- a/drivers/media/platform/rockchip/isp/rkisp.c +++ b/drivers/media/platform/rockchip/isp/rkisp.c @@ -650,7 +650,7 @@ static int rkisp_config_isp(struct rkisp_device *dev) /* interrupt mask */ irq_mask |= CIF_ISP_FRAME | CIF_ISP_V_START | CIF_ISP_PIC_SIZE_ERROR | - CIF_ISP_FRAME_IN | ISP2X_HDR_DONE; + CIF_ISP_FRAME_IN; if (dev->isp_ver == ISP_V20 || dev->isp_ver == ISP_V21) irq_mask |= ISP2X_LSC_LUT_ERR; rkisp_write(dev, CIF_ISP_IMSC, irq_mask, true);