From 210c9450c17721fea5855aad45be875cbf18e8fa Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 20 Feb 2008 12:23:38 +0000 Subject: linux-openmoko: Add input subsys -> APM bridge and tweak power driver key events git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3831 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- .../linux/linux-openmoko/soc-core-suspend.patch | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 meta/packages/linux/linux-openmoko/soc-core-suspend.patch (limited to 'meta/packages/linux/linux-openmoko/soc-core-suspend.patch') diff --git a/meta/packages/linux/linux-openmoko/soc-core-suspend.patch b/meta/packages/linux/linux-openmoko/soc-core-suspend.patch new file mode 100644 index 000000000..7fb6cc7f7 --- /dev/null +++ b/meta/packages/linux/linux-openmoko/soc-core-suspend.patch @@ -0,0 +1,47 @@ +From 6c868238a5e083dca4d74439a7fd467b5c7726b0 Mon Sep 17 00:00:00 2001 +From: Liam Girdwood +Date: Fri, 1 Jun 2007 12:56:55 +0100 +Subject: [PATCH] This fixes a bug whereby PCM's were not being suspended when the rest of the audio subsystem was suspended. + +--- + include/sound/soc.h | 3 +++ + sound/soc/soc-core.c | 8 ++++++++ + 2 files changed, 11 insertions(+), 0 deletions(-) + +Index: linux-2.6.22/include/sound/soc.h +=================================================================== +--- linux-2.6.22.orig/include/sound/soc.h 2007-07-09 00:32:17.000000000 +0100 ++++ linux-2.6.22/include/sound/soc.h 2007-11-09 16:13:08.000000000 +0000 +@@ -411,6 +411,9 @@ + + /* codec/machine specific init - e.g. add machine controls */ + int (*init)(struct snd_soc_codec *codec); ++ ++ /* DAI pcm */ ++ struct snd_pcm *pcm; + }; + + /* SoC machine */ +Index: linux-2.6.22/sound/soc/soc-core.c +=================================================================== +--- linux-2.6.22.orig/sound/soc/soc-core.c 2007-07-09 00:32:17.000000000 +0100 ++++ linux-2.6.22/sound/soc/soc-core.c 2007-11-09 16:18:45.000000000 +0000 +@@ -639,6 +639,10 @@ + dai->dai_ops.digital_mute(dai, 1); + } + ++ /* suspend all pcm's */ ++ 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); + +@@ -873,6 +877,7 @@ + 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; -- cgit v1.2.3