Commit 4ccab3e7 authored by Liam Girdwood's avatar Liam Girdwood Committed by Jaroslav Kysela

[ALSA] soc - Ensure PCMs are suspended

This fixes a bug whereby PCMs were not being suspended when the rest of the
audio subsystem was suspended.
Signed-off-by: default avatarLiam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent 3c1c47e0
...@@ -447,6 +447,9 @@ struct snd_soc_dai_link { ...@@ -447,6 +447,9 @@ struct snd_soc_dai_link {
/* codec/machine specific init - e.g. add machine controls */ /* codec/machine specific init - e.g. add machine controls */
int (*init)(struct snd_soc_codec *codec); int (*init)(struct snd_soc_codec *codec);
/* DAI pcm */
struct snd_pcm *pcm;
}; };
/* SoC machine */ /* SoC machine */
......
...@@ -645,6 +645,10 @@ static int soc_suspend(struct platform_device *pdev, pm_message_t state) ...@@ -645,6 +645,10 @@ static int soc_suspend(struct platform_device *pdev, pm_message_t state)
dai->dai_ops.digital_mute(dai, 1); dai->dai_ops.digital_mute(dai, 1);
} }
/* suspend all pcms */
for (i = 0; i < machine->num_links; i++)
snd_pcm_suspend_all(machine->dai_link[i].pcm);
if (machine->suspend_pre) if (machine->suspend_pre)
machine->suspend_pre(pdev, state); machine->suspend_pre(pdev, state);
...@@ -879,6 +883,7 @@ static int soc_new_pcm(struct snd_soc_device *socdev, ...@@ -879,6 +883,7 @@ static int soc_new_pcm(struct snd_soc_device *socdev,
return ret; return ret;
} }
dai_link->pcm = pcm;
pcm->private_data = rtd; pcm->private_data = rtd;
soc_pcm_ops.mmap = socdev->platform->pcm_ops->mmap; soc_pcm_ops.mmap = socdev->platform->pcm_ops->mmap;
soc_pcm_ops.pointer = socdev->platform->pcm_ops->pointer; soc_pcm_ops.pointer = socdev->platform->pcm_ops->pointer;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment