media: rockchip: vicap fixes error of clean intr mask when stop stream

Signed-off-by: Zefa Chen <zefa.chen@rock-chips.com>
Change-Id: I5678f52e8a527b38eaa96ad4ae35e94addee525d
This commit is contained in:
Zefa Chen 2024-07-16 10:41:23 +08:00 committed by Tao Huang
commit 14a361a75b

View file

@ -4661,15 +4661,27 @@ static void rkcif_stream_stop(struct rkcif_stream *stream)
rkcif_write_register(cif_dev, get_reg_index_of_id_ctrl0(id), val);
}
rkcif_write_register_or(cif_dev, CIF_REG_MIPI_LVDS_INTSTAT,
CSI_START_INTSTAT(id) |
CSI_DMA_END_INTSTAT(id) |
CSI_LINE_INTSTAT(id));
val = CSI_DMA_END_INTSTAT(id);
if (cif_dev->chip_id >= CHIP_RK3576_CIF)
val |= CSI_START_INTSTAT_RK3576(id);
else
val |= CSI_START_INTSTAT(id);
if (cif_dev->chip_id >= CHIP_RK3588_CIF)
val |= CSI_LINE_INTSTAT_V1(id);
else
val |= CSI_LINE_INTSTAT(id);
rkcif_write_register_or(cif_dev, CIF_REG_MIPI_LVDS_INTSTAT, val);
rkcif_write_register_and(cif_dev, CIF_REG_MIPI_LVDS_INTEN,
~(CSI_START_INTEN(id) |
CSI_DMA_END_INTEN(id) |
CSI_LINE_INTEN(id)));
val = CSI_DMA_END_INTEN(id);
if (cif_dev->chip_id >= CHIP_RK3576_CIF)
val |= CSI_START_INTEN_RK3576(id);
else
val |= CSI_START_INTEN(id);
if (cif_dev->chip_id >= CHIP_RK3588_CIF)
val |= CSI_LINE_INTEN_RK3588(id);
else
val |= CSI_LINE_INTEN(id);
rkcif_write_register_and(cif_dev, CIF_REG_MIPI_LVDS_INTEN, ~val);
if (stream->cifdev->chip_id < CHIP_RK3588_CIF) {
rkcif_write_register_and(cif_dev, CIF_REG_MIPI_LVDS_INTEN,