diff --git a/sound/soc/rockchip/rockchip_i2s_tdm.c b/sound/soc/rockchip/rockchip_i2s_tdm.c index 15e7f0242e28..59f96091f315 100644 --- a/sound/soc/rockchip/rockchip_i2s_tdm.c +++ b/sound/soc/rockchip/rockchip_i2s_tdm.c @@ -2158,6 +2158,9 @@ static irqreturn_t rockchip_i2s_tdm_isr(int irq, void *devid) dev_warn_ratelimited(i2s_tdm->dev, "TX FIFO Underrun\n"); regmap_update_bits(i2s_tdm->regmap, I2S_INTCR, I2S_INTCR_TXUIC, I2S_INTCR_TXUIC); + regmap_update_bits(i2s_tdm->regmap, I2S_INTCR, + I2S_INTCR_TXUIE_MASK, + I2S_INTCR_TXUIE(0)); substream = i2s_tdm->substreams[SNDRV_PCM_STREAM_PLAYBACK]; if (substream) snd_pcm_stop_xrun(substream); @@ -2167,6 +2170,9 @@ static irqreturn_t rockchip_i2s_tdm_isr(int irq, void *devid) dev_warn_ratelimited(i2s_tdm->dev, "RX FIFO Overrun\n"); regmap_update_bits(i2s_tdm->regmap, I2S_INTCR, I2S_INTCR_RXOIC, I2S_INTCR_RXOIC); + regmap_update_bits(i2s_tdm->regmap, I2S_INTCR, + I2S_INTCR_RXOIE_MASK, + I2S_INTCR_RXOIE(0)); substream = i2s_tdm->substreams[SNDRV_PCM_STREAM_CAPTURE]; if (substream) snd_pcm_stop_xrun(substream);