From b84a03e24ea88798a72547dcb21ef40234ed4b28 Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Fri, 26 Jan 2024 10:31:04 +0800 Subject: [PATCH] media: rockchip: isp: fix isp stop to read stats buf Change-Id: Ieea391acda2ae44dfa0b26d063a057aec7162521 Signed-off-by: Cai YiWei --- drivers/media/platform/rockchip/isp/isp_stats.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/rockchip/isp/isp_stats.c b/drivers/media/platform/rockchip/isp/isp_stats.c index d95315ee6d6d..5c223ae5045b 100644 --- a/drivers/media/platform/rockchip/isp/isp_stats.c +++ b/drivers/media/platform/rockchip/isp/isp_stats.c @@ -145,11 +145,12 @@ static void rkisp_stats_vb2_buf_queue(struct vb2_buffer *vb) struct rkisp_buffer *stats_buf = to_rkisp_buffer(vbuf); struct vb2_queue *vq = vb->vb2_queue; struct rkisp_isp_stats_vdev *stats_dev = vq->drv_priv; + struct rkisp_device *dev = stats_dev->dev; u32 size = stats_dev->vdev_fmt.fmt.meta.buffersize; unsigned long flags; stats_buf->vaddr[0] = vb2_plane_vaddr(vb, 0); - if (stats_dev->dev->isp_ver == ISP_V32) { + if (dev->isp_ver == ISP_V32) { struct sg_table *sgt = vb2_dma_sg_plane_desc(vb, 0); stats_buf->buff_addr[0] = sg_dma_address(sgt->sgl); @@ -157,11 +158,12 @@ static void rkisp_stats_vb2_buf_queue(struct vb2_buffer *vb) if (stats_buf->vaddr[0]) memset(stats_buf->vaddr[0], 0, size); spin_lock_irqsave(&stats_dev->rd_lock, flags); - if (stats_dev->dev->isp_ver == ISP_V32 && stats_dev->dev->is_pre_on) { + if (dev->isp_ver == ISP_V32 && dev->is_pre_on) { struct rkisp32_isp_stat_buffer *buf = stats_dev->stats_buf[0].vaddr; - if (buf && !buf->frame_id && buf->meas_type && stats_buf->vaddr[0]) { - dev_info(stats_dev->dev->dev, + if (dev->isp_state & ISP_START && stats_buf->vaddr[0] && + buf && !buf->frame_id && buf->meas_type) { + dev_info(dev->dev, "tb stat seq:%d meas_type:0x%x\n", buf->frame_id, buf->meas_type); memcpy(stats_buf->vaddr[0], buf, sizeof(struct rkisp32_isp_stat_buffer));