[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1551706274-22571-1-git-send-email-jonathanh@nvidia.com>
Date: Mon, 4 Mar 2019 13:31:14 +0000
From: Jon Hunter <jonathanh@...dia.com>
To: Liam Girdwood <lgirdwood@...il.com>,
Mark Brown <broonie@...nel.org>
CC: <alsa-devel@...a-project.org>, <linux-kernel@...r.kernel.org>,
Curtis Malainey <cujomalainey@...gle.com>,
<linux-tegra@...r.kernel.org>,
Jonathan Hunter <jonathanh@...dia.com>
Subject: [PATCH] ASoC: soc-core: Fix probe deferral following prelink failure
From: Jonathan Hunter <jonathanh@...dia.com>
Commit 78a24e10cd94 ("ASoC: soc-core: clear platform pointers on error")
re-worked the clean-up of any platform pointers that may have been
initialised by the function snd_soc_init_platform(). This commit missed
one error path where if any of the prelinks for a soundcard failed to
initialise, then these platform pointers would not be cleaned-up. This
then prevents the soundcard from being initialised following a probe
deferral when any of the soundcard prelinks cannot be found.
Fix this by ensuring that soc_cleanup_platform() is called when
initialising the soundcard prelinks fails.
Fixes: 78a24e10cd94 ("ASoC: soc-core: clear platform pointers on error")
Signed-off-by: Jonathan Hunter <jonathanh@...dia.com>
---
sound/soc/soc-core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 93d316d5bf8e..5a5764dba147 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -2797,6 +2797,7 @@ int snd_soc_register_card(struct snd_soc_card *card)
ret = soc_init_dai_link(card, link);
if (ret) {
+ soc_cleanup_platform(card);
dev_err(card->dev, "ASoC: failed to init link %s\n",
link->name);
mutex_unlock(&client_mutex);
--
1.9.1
Powered by blists - more mailing lists