ASoC: core: On resume also check the soc device state
authorPeter Ujfalusi <peter.ujfalusi@nokia.com>
Mon, 22 Feb 2010 11:27:13 +0000 (13:27 +0200)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 22 Feb 2010 14:39:42 +0000 (14:39 +0000)
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>
sound/soc/soc-core.c

index e1c0336868e1af92b021f945b986a847a71b00e1..a03bac943aafc8d3ef914f7c558999a1cbc0824d 100644 (file)
@@ -963,6 +963,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