From 15708c309d4c568536cdee07bb7ddb04f534ca51 Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Wed, 26 Feb 2025 16:30:37 +0800 Subject: [PATCH] media: rockchip: vicap fixes error of sof intr loss Change-Id: Ifce44e0c14b56dc2d7e131cbb48ceefb4453f99c Signed-off-by: Zefa Chen --- drivers/media/platform/rockchip/cif/capture.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/rockchip/cif/capture.c b/drivers/media/platform/rockchip/cif/capture.c index f385352b66e2..085056f4eca1 100644 --- a/drivers/media/platform/rockchip/cif/capture.c +++ b/drivers/media/platform/rockchip/cif/capture.c @@ -13061,10 +13061,13 @@ void rkcif_enable_dma_capture(struct rkcif_stream *stream, bool is_only_enable) } else { val |= CSI_DMA_ENABLE_RK3576; uncompact = CSI_WRDDR_TYPE_RAW_UNCOMPACT << 3; - rkcif_write_register(cif_dev, CIF_REG_MIPI_LVDS_INTSTAT, - CSI_START_INTSTAT_RK3576(stream->id)); - rkcif_write_register_or(cif_dev, CIF_REG_MIPI_LVDS_INTEN, - CSI_START_INTEN_RK3576(stream->id)); + if (!(rkcif_read_register(cif_dev, CIF_REG_MIPI_LVDS_INTEN) & + CSI_START_INTEN_RK3576(stream->id))) { + rkcif_write_register(cif_dev, CIF_REG_MIPI_LVDS_INTSTAT, + CSI_START_INTSTAT_RK3576(stream->id)); + rkcif_write_register_or(cif_dev, CIF_REG_MIPI_LVDS_INTEN, + CSI_START_INTEN_RK3576(stream->id)); + } } if (!stream->is_compact) val |= uncompact;