diff --git a/drivers/media/platform/rockchip/isp/isp_stats_v2x.c b/drivers/media/platform/rockchip/isp/isp_stats_v2x.c index ab06c8513852..0dd6a6cd920d 100644 --- a/drivers/media/platform/rockchip/isp/isp_stats_v2x.c +++ b/drivers/media/platform/rockchip/isp/isp_stats_v2x.c @@ -1336,12 +1336,15 @@ rkisp_stats_isr_v2x(struct rkisp_isp_stats_vdev *stats_vdev, ISP2X_3A_RAWAF_LUM | ISP2X_3A_RAWAF | ISP2X_3A_RAWAWB; u32 hdl_ris, hdl_3aris, unhdl_ris, unhdl_3aris; u32 wr_buf_idx; + u32 temp_isp_ris, temp_isp3a_ris; #ifdef LOG_ISR_EXE_TIME ktime_t in_t = ktime_get(); #endif spin_lock(&stats_vdev->irq_lock); + temp_isp_ris = readl(stats_vdev->dev->base_addr + ISP_ISP_RIS); + temp_isp3a_ris = readl(stats_vdev->dev->base_addr + ISP_ISP3A_RIS); isp_mis_tmp = isp_ris & iq_isr_mask; if (isp_mis_tmp) { writel(isp_mis_tmp, @@ -1379,8 +1382,6 @@ rkisp_stats_isr_v2x(struct rkisp_isp_stats_vdev *stats_vdev, stats_vdev->dev->base_addr + MI_SWS_3A_WR_BASE); } - hdl_ris = isp_ris; - hdl_3aris = isp3a_ris; unhdl_ris = 0; unhdl_3aris = 0; if (stats_vdev->rdbk_mode) { @@ -1392,11 +1393,11 @@ rkisp_stats_isr_v2x(struct rkisp_isp_stats_vdev *stats_vdev, stats_vdev->isp3a_rdbk |= hdl_3aris; } - if ((hdl_ris & iq_isr_mask) || (hdl_3aris & iq_3a_mask)) { + if (isp_ris & CIF_ISP_FRAME) { work.readout = RKISP_ISP_READOUT_MEAS; work.frame_id = cur_frame_id; - work.isp_ris = hdl_ris; - work.isp3a_ris = hdl_3aris; + work.isp_ris = temp_isp_ris | isp_ris; + work.isp3a_ris = temp_isp3a_ris; work.timestamp = ktime_get_ns(); if (!kfifo_is_full(&stats_vdev->rd_kfifo)) diff --git a/drivers/media/platform/rockchip/isp/rkisp.c b/drivers/media/platform/rockchip/isp/rkisp.c index c5a18e3a17c7..f959ea89446d 100644 --- a/drivers/media/platform/rockchip/isp/rkisp.c +++ b/drivers/media/platform/rockchip/isp/rkisp.c @@ -501,17 +501,8 @@ 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 | CIF_ISP_AWB_DONE | CIF_ISP_AFM_FIN; + CIF_ISP_FRAME_IN; writel(irq_mask, base + CIF_ISP_IMSC); - if (dev->isp_ver == ISP_V20) { - irq_mask = ISP2X_3A_RAWAE_BIG | ISP2X_3A_RAWAE_CH0 | - ISP2X_3A_RAWAE_CH1 | ISP2X_3A_RAWAE_CH2 | - ISP2X_3A_RAWHIST_BIG | ISP2X_3A_RAWHIST_CH0 | - ISP2X_3A_RAWHIST_CH1 | ISP2X_3A_RAWHIST_CH2 | - ISP2X_3A_RAWAWB | ISP2X_3A_RAWAF | ISP2X_3A_RAWAF_SUM | - ISP2X_3A_RAWAF_LUM; - writel(irq_mask, base + ISP_ISP3A_IMSC); - } if (out_fmt->fmt_type == FMT_BAYER) rkisp_params_disable_isp(&dev->params_vdev);