Commit 639b231f authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

ASoC: rsnd: no more SRC restart when unusual situation



It will be SRC interrupt endless loop f unusual situation happen.
This patch adds restart limit for it.

Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 044930b4
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -620,13 +620,17 @@ static irqreturn_t rsnd_src_interrupt_gen2(int irq, void *data)

	if (rsnd_src_error_record_gen2(mod)) {
		struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
		struct rsnd_src *src = rsnd_mod_to_src(mod);
		struct device *dev = rsnd_priv_to_dev(priv);

		_rsnd_src_stop_gen2(mod);
		_rsnd_src_start_gen2(mod);

		dev_dbg(dev, "%s[%d] restart\n",
			rsnd_mod_name(mod), rsnd_mod_id(mod));

		_rsnd_src_stop_gen2(mod);
		if (src->err < 1024)
			_rsnd_src_start_gen2(mod);
		else
			dev_warn(dev, "no more SRC restart\n");
	}

	return IRQ_HANDLED;