ASoC: mchp-spdifrx: disable all interrupts in mchp_spdifrx_dai_remove()
authorClaudiu Beznea <claudiu.beznea@microchip.com>
Mon, 30 Jan 2023 12:06:43 +0000 (14:06 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 Mar 2023 08:33:19 +0000 (09:33 +0100)
[ Upstream commit aaecdc32b7e35b4f9b457fb3509414aa9a932589 ]

CSC interrupts which might be used in controls are on bits 8 and 9 of
SPDIFRX_IDR register. Thus disable all the interrupts that are exported
by driver.

Fixes: ef265c55c1ac ("ASoC: mchp-spdifrx: add driver for SPDIF RX")
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Link: https://lore.kernel.org/r/20230130120647.638049-5-claudiu.beznea@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/atmel/mchp-spdifrx.c

index 31ffaaf..b81fc77 100644 (file)
@@ -921,7 +921,7 @@ static int mchp_spdifrx_dai_remove(struct snd_soc_dai *dai)
        struct mchp_spdifrx_dev *dev = snd_soc_dai_get_drvdata(dai);
 
        /* Disable interrupts */
-       regmap_write(dev->regmap, SPDIFRX_IDR, 0xFF);
+       regmap_write(dev->regmap, SPDIFRX_IDR, GENMASK(14, 0));
 
        clk_disable_unprepare(dev->pclk);