ASoC: stm32: sai: Remove spurious IRQs on stop
authorOlivier Moysan <olivier.moysan@st.com>
Thu, 19 Oct 2017 13:03:21 +0000 (15:03 +0200)
committerMark Brown <broonie@kernel.org>
Sat, 21 Oct 2017 10:17:49 +0000 (11:17 +0100)
Clear IRQ mask on stream stop to avoid spurious IRQs.

Signed-off-by: Olivier Moysan <olivier.moysan@st.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/stm/stm32_sai_sub.c

index 815ef10..fd7dc77 100644 (file)
@@ -419,8 +419,6 @@ static int stm32_sai_startup(struct snd_pcm_substream *substream,
        }
 
        /* Enable ITs */
-       regmap_update_bits(sai->regmap, STM_SAI_SR_REGX,
-                          SAI_XSR_MASK, (unsigned int)~SAI_XSR_MASK);
 
        regmap_update_bits(sai->regmap, STM_SAI_CLRFR_REGX,
                           SAI_XCLRFR_MASK, SAI_XCLRFR_MASK);
@@ -693,6 +691,9 @@ static int stm32_sai_trigger(struct snd_pcm_substream *substream, int cmd,
        case SNDRV_PCM_TRIGGER_STOP:
                dev_dbg(cpu_dai->dev, "Disable DMA and SAI\n");
 
+               regmap_update_bits(sai->regmap, STM_SAI_IMR_REGX,
+                                  SAI_XIMR_MASK, 0);
+
                regmap_update_bits(sai->regmap, STM_SAI_CR1_REGX,
                                   SAI_XCR1_SAIEN,
                                   (unsigned int)~SAI_XCR1_SAIEN);