| From 7c80502b95e9d1eebb2f2357cf1cae89fe6df45c Mon Sep 17 00:00:00 2001 |
| From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
| Date: Tue, 16 May 2017 01:48:24 +0000 |
| Subject: [PATCH 103/286] ASoC: rsnd: don't call free_irq() on Parent SSI |
| |
| If SSI uses shared pin, some SSI will be used as parent SSI. |
| Then, normal SSI's remove and Parent SSI's remove |
| (these are same SSI) will be called when unbind or remove timing. |
| In this case, free_irq() will be called twice. |
| This patch solve this issue. |
| |
| Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
| Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com> |
| Reported-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com> |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| (cherry picked from commit 1f8754d4daea5f257370a52a30fcb22798c54516) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| sound/soc/sh/rcar/ssi.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| --- a/sound/soc/sh/rcar/ssi.c |
| +++ b/sound/soc/sh/rcar/ssi.c |
| @@ -872,6 +872,11 @@ struct rsnd_mod *rsnd_ssi_mod_get(struct |
| int __rsnd_ssi_is_pin_sharing(struct rsnd_mod *mod) |
| { |
| struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); |
| + struct rsnd_mod *ssi_parent_mod = rsnd_io_to_mod_ssip(io); |
| + |
| + /* Do nothing for SSI parent mod */ |
| + if (ssi_parent_mod == mod) |
| + return 0; |
| |
| return !!(rsnd_ssi_mode_flags(ssi) & RSND_SSI_CLK_PIN_SHARE); |
| } |