Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c001f3a authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

ASoC: rsnd: don't update status if rsnd_mod_call() doesn't match



If system uses CTU/MUX, and if probe error happened, it will try to
call rsnd_dai_call(remove, ...). Then, MUX/DVC/SSIU/SSI might be called
without calling rsnd_dai_call(probe, ...). Then, each mod status might
be un-matched. It doesn't call un-matched remove function by this patch.

Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 4e880b26
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -330,6 +330,9 @@ u32 rsnd_get_dalign(struct rsnd_mod *mod, struct rsnd_dai_stream *io)
	u8 add  = ((val + __rsnd_mod_add_##func) & 0xF);		\
	int ret = 0;							\
	int call = (val == __rsnd_mod_call_##func) && (mod)->ops->func;	\
	if (add == 0xF)							\
		call = 0;						\
	else								\
		*status = (*status & ~mask) +				\
			(add << __rsnd_mod_shift_##func);		\
	dev_dbg(dev, "%s[%d]\t0x%08x %s\n",				\