From: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Date: Mon, 22 Feb 2010 11:27:13 +0000 (+0200)
Subject: ASoC: core: On resume also check the soc device state
X-Git-Tag: firefly_0821_release~10785^2~12^2~10
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ecf7611caeb1b68e6ed4575f1abf92c619e75a98;p=firefly-linux-kernel-4.4.55.git

ASoC: core: On resume also check the soc device state

Check the card->codec on soc_resume to detect if the soc
device is properly initialized.
If the card->codec is NULL, than do not continue the resume
operation, since the device is not initialized properly.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
---

diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 0a1b2f64bbee..230cb888eb71 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -774,6 +774,12 @@ static int soc_resume(struct device *dev)
 	struct snd_soc_card *card = socdev->card;
 	struct snd_soc_dai *cpu_dai = card->dai_link[0].cpu_dai;
 
+	/* If the initialization of this soc device failed, there is no codec
+	 * associated with it. Just bail out in this case.
+	 */
+	if (!card->codec)
+		return 0;
+
 	/* AC97 devices might have other drivers hanging off them so
 	 * need to resume immediately.  Other drivers don't have that
 	 * problem and may take a substantial amount of time to resume