]> git.hungrycats.org Git - linux/commitdiff
ASoC: rsnd: avoid duplicate free_irq()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Wed, 9 Aug 2017 02:16:20 +0000 (02:16 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Feb 2018 11:36:03 +0000 (12:36 +0100)
commit e0936c3471a8411a5df327641fa3ffe12a2fb07b upstream.

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>
Signed-off-by: thongsyho <thong.ho.px@rvc.renesas.com>
Signed-off-by: Nhan Nguyen <nhan.nguyen.yb@renesas.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/soc/sh/rcar/ssi.c

index 071fa850fed57e736ba4070499b1671d482c1e08..a9a43acce30ec573bce012f5c8a6758df08305bf 100644 (file)
@@ -699,12 +699,12 @@ 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);
        struct device *dev = rsnd_priv_to_dev(priv);
        int irq = ssi->irq;
 
-       /* 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 */