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 {
/* codec/machine specific init - e.g. add machine controls */
int (*init)(struct snd_soc_codec *codec);
/* DAI pcm */
struct snd_pcm *pcm;
};
/* SoC machine */
......
......@@ -645,6 +645,10 @@ static int soc_suspend(struct platform_device *pdev, pm_message_t state)
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)
machine->suspend_pre(pdev, state);
......@@ -879,6 +883,7 @@ static int soc_new_pcm(struct snd_soc_device *socdev,
return ret;
}
dai_link->pcm = pcm;
pcm->private_data = rtd;
soc_pcm_ops.mmap = socdev->platform->pcm_ops->mmap;
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