[alsa-devel] [PATCH] ASoC: core: Fix card RTD count for deferred probe.
Currently we increment the number of RTD's per card during the DAI link bind. This can cause an incorrect RTD count when we cannot find a component and defer the probe (and hence perform the DAI link bind for the card again).
Fix the count so that it is cleared before every card registration and bind attempt.
Signed-off-by: Liam Girdwood lrg@ti.com --- sound/soc/soc-core.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 5d308e9..20e55531 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -3155,6 +3155,7 @@ int snd_soc_register_card(struct snd_soc_card *card) GFP_KERNEL); if (card->rtd == NULL) return -ENOMEM; + card->num_rtd = 0; card->rtd_aux = &card->rtd[card->num_links];
for (i = 0; i < card->num_links; i++)
On Tue, Apr 17, 2012 at 06:00:11PM +0100, Liam Girdwood wrote:
Currently we increment the number of RTD's per card during the DAI link bind. This can cause an incorrect RTD count when we cannot find a component and defer the probe (and hence perform the DAI link bind for the card again).
Fix the count so that it is cleared before every card registration and bind attempt.
Hrm, I wonder why this ever worked even with the home grown retry code... anyway, I'll apply.
participants (2)
-
Liam Girdwood
-
Mark Brown