ASoC: rsnd: avoid duplicate free_irq()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Wed, 9 Aug 2017 02:16:20 +0000 (02:16 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 9 Aug 2017 16:56:14 +0000 (17:56 +0100)
commit 1f8754d4daea5f ("ASoC: rsnd: don't call free_irq() on
Parent SSI") fixed Parent SSI duplicate free_irq().
But on Renesas Sound, not only Parent SSI but also Multi SSI
have same issue.
This patch avoid duplicate free_irq() if it was not pure SSI.

Fixes: 1f8754d4daea5f ("ASoC: rsnd: don't call free_irq() on Parent SSI")
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/ssi.c

index c5d5c64152e95a6c6f3b1b7ba862c974243dcbd0..90cc9c13c4e079ab5c9a207f5678601f51dfd8de 100644 (file)
@@ -845,10 +845,10 @@ static int rsnd_ssi_dma_remove(struct rsnd_mod *mod,
                               struct rsnd_priv *priv)
 {
        struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod);
-       struct rsnd_mod *ssi_parent_mod = rsnd_io_to_mod_ssip(io);
+       struct rsnd_mod *pure_ssi_mod = rsnd_io_to_mod_ssi(io);
 
-       /* Do nothing for SSI parent mod */
-       if (ssi_parent_mod == mod)
+       /* Do nothing if non SSI (= SSI parent, multi SSI) mod */
+       if (pure_ssi_mod != mod)
                return 0;
 
        /* PIO will request IRQ again */