summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0063-ASoC-dapm-Fix-_PRE-and-_POST-events-for-DAPM-perform.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0063-ASoC-dapm-Fix-_PRE-and-_POST-events-for-DAPM-perform.patch')
-rw-r--r--recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0063-ASoC-dapm-Fix-_PRE-and-_POST-events-for-DAPM-perform.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0063-ASoC-dapm-Fix-_PRE-and-_POST-events-for-DAPM-perform.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0063-ASoC-dapm-Fix-_PRE-and-_POST-events-for-DAPM-perform.patch
new file mode 100644
index 00000000..a1fc4639
--- /dev/null
+++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0063-ASoC-dapm-Fix-_PRE-and-_POST-events-for-DAPM-perform.patch
@@ -0,0 +1,46 @@
1From 8fbf76d6e7e81a95a44e627e0c6dbeef231700f2 Mon Sep 17 00:00:00 2001
2From: Mark Brown <broonie@opensource.wolfsonmicro.com>
3Date: Fri, 20 Jul 2012 17:29:34 +0100
4Subject: [PATCH 63/73] ASoC: dapm: Fix _PRE and _POST events for DAPM
5 performance improvements
6
7commit 0ff97ebf0804d2e519d578fcb4db03f104d2ca8c upstream.
8
9Ever since the DAPM performance improvements we've been marking all widgets
10as not dirty after each DAPM run. Since _PRE and _POST events aren't part
11of the DAPM graph this has rendered them non-functional, they will never be
12marked dirty again and thus will never be run again.
13
14Fix this by skipping them when marking widgets as not dirty.
15
16Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
17Acked-by: Liam Girdwood <lrg@ti.com>
18Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
19---
20 sound/soc/soc-dapm.c | 10 +++++++++-
21 1 files changed, 9 insertions(+), 1 deletions(-)
22
23diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
24index 90e93bf..0dc441c 100644
25--- a/sound/soc/soc-dapm.c
26+++ b/sound/soc/soc-dapm.c
27@@ -1381,7 +1381,15 @@ static int dapm_power_widgets(struct snd_soc_dapm_context *dapm, int event)
28 }
29
30 list_for_each_entry(w, &card->widgets, list) {
31- list_del_init(&w->dirty);
32+ switch (w->id) {
33+ case snd_soc_dapm_pre:
34+ case snd_soc_dapm_post:
35+ /* These widgets always need to be powered */
36+ break;
37+ default:
38+ list_del_init(&w->dirty);
39+ break;
40+ }
41
42 if (w->power) {
43 d = w->dapm;
44--
451.7.7.6
46