ASoC: Mark Speyside widgets as ignoring suspend
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 13 Apr 2011 00:37:52 +0000 (17:37 -0700)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 13 Apr 2011 17:02:23 +0000 (10:02 -0700)
Allow audio paths through the Speyside system to be kept active while the
system is suspended (for example, when on a voice call) by marking all the
external widgets and the DAI link to the WM1250-EV1 baseband module as
ignoring suspend.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Acked-by: Liam Girdwood <lrg@ti.com>
sound/soc/samsung/speyside.c

index a0c14a87e23d8e215bcbb00b5b5fe91b8bb81915..337855a3f2fe1473d32f8e9c723769cb581c7ddf 100644 (file)
@@ -153,6 +153,19 @@ static int speyside_wm8915_init(struct snd_soc_pcm_runtime *rtd)
        return 0;
 }
 
+static int speyside_late_probe(struct snd_soc_card *card)
+{
+       snd_soc_dapm_ignore_suspend(&card->dapm, "Headphone");
+       snd_soc_dapm_ignore_suspend(&card->dapm, "Headset Mic");
+       snd_soc_dapm_ignore_suspend(&card->dapm, "Main AMIC");
+       snd_soc_dapm_ignore_suspend(&card->dapm, "Main DMIC");
+       snd_soc_dapm_ignore_suspend(&card->dapm, "Speaker");
+       snd_soc_dapm_ignore_suspend(&card->dapm, "WM1250 Output");
+       snd_soc_dapm_ignore_suspend(&card->dapm, "WM1250 Input");
+
+       return 0;
+}
+
 static struct snd_soc_dai_link speyside_dai[] = {
        {
                .name = "CPU",
@@ -172,6 +185,7 @@ static struct snd_soc_dai_link speyside_dai[] = {
                .codec_name = "wm1250-ev1.1-0027",
                .platform_name = "samsung-audio",
                .ops = &speyside_ops,
+               .ignore_suspend = 1,
        },
 };
 
@@ -261,6 +275,8 @@ static struct snd_soc_card speyside = {
        .num_dapm_widgets = ARRAY_SIZE(widgets),
        .dapm_routes = audio_paths,
        .num_dapm_routes = ARRAY_SIZE(audio_paths),
+
+       .late_probe = speyside_late_probe,
 };
 
 static __devinit int speyside_probe(struct platform_device *pdev)