diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2015-03-19 04:13:47 +0000 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-03-22 18:12:15 +0000 |
commit | 044930b4a69a6c0645b6199bec4f870e0b6e77f4 (patch) | |
tree | a83271df71a0920e0de0b9fad6f2cdbd3f0bbdf6 /sound/soc/sh/rcar | |
parent | 33187fb4a203e44dec11211f2fa86a63139615bc (diff) | |
download | linux-044930b4a69a6c0645b6199bec4f870e0b6e77f4.tar.bz2 |
ASoC: rsnd: no more SSI restart when unusual situation
It will be SSI interrupt endless loop f unusual situation happen.
This patch adds restart limit for it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sh/rcar')
-rw-r--r-- | sound/soc/sh/rcar/ssi.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c index fea4aa53918a..060d3d205250 100644 --- a/sound/soc/sh/rcar/ssi.c +++ b/sound/soc/sh/rcar/ssi.c @@ -416,11 +416,14 @@ static irqreturn_t rsnd_ssi_interrupt(int irq, void *data) /* * restart SSI */ - rsnd_ssi_stop(mod, priv); - rsnd_ssi_start(mod, priv); - dev_dbg(dev, "%s[%d] restart\n", rsnd_mod_name(mod), rsnd_mod_id(mod)); + + rsnd_ssi_stop(mod, priv); + if (ssi->err < 1024) + rsnd_ssi_start(mod, priv); + else + dev_warn(dev, "no more SSI restart\n"); } rsnd_ssi_record_error(ssi, status); |