diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2015-03-19 00:13:47 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-03-22 14:12:15 -0400 |
commit | 044930b4a69a6c0645b6199bec4f870e0b6e77f4 (patch) | |
tree | a83271df71a0920e0de0b9fad6f2cdbd3f0bbdf6 /sound | |
parent | 33187fb4a203e44dec11211f2fa86a63139615bc (diff) |
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')
-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) | |||
416 | /* | 416 | /* |
417 | * restart SSI | 417 | * restart SSI |
418 | */ | 418 | */ |
419 | rsnd_ssi_stop(mod, priv); | ||
420 | rsnd_ssi_start(mod, priv); | ||
421 | |||
422 | dev_dbg(dev, "%s[%d] restart\n", | 419 | dev_dbg(dev, "%s[%d] restart\n", |
423 | rsnd_mod_name(mod), rsnd_mod_id(mod)); | 420 | rsnd_mod_name(mod), rsnd_mod_id(mod)); |
421 | |||
422 | rsnd_ssi_stop(mod, priv); | ||
423 | if (ssi->err < 1024) | ||
424 | rsnd_ssi_start(mod, priv); | ||
425 | else | ||
426 | dev_warn(dev, "no more SSI restart\n"); | ||
424 | } | 427 | } |
425 | 428 | ||
426 | rsnd_ssi_record_error(ssi, status); | 429 | rsnd_ssi_record_error(ssi, status); |