summaryrefslogtreecommitdiff
path: root/ANDROID_3.4.5/sound/soc/soc-dapm.c
diff options
context:
space:
mode:
Diffstat (limited to 'ANDROID_3.4.5/sound/soc/soc-dapm.c')
-rw-r--r--ANDROID_3.4.5/sound/soc/soc-dapm.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/ANDROID_3.4.5/sound/soc/soc-dapm.c b/ANDROID_3.4.5/sound/soc/soc-dapm.c
index 64bcd4e2..6201fc54 100644
--- a/ANDROID_3.4.5/sound/soc/soc-dapm.c
+++ b/ANDROID_3.4.5/sound/soc/soc-dapm.c
@@ -1442,7 +1442,15 @@ static int dapm_power_widgets(struct snd_soc_dapm_context *dapm, int event)
}
list_for_each_entry(w, &card->widgets, list) {
- list_del_init(&w->dirty);
+ switch (w->id) {
+ case snd_soc_dapm_pre:
+ case snd_soc_dapm_post:
+ /* These widgets always need to be powered */
+ break;
+ default:
+ list_del_init(&w->dirty);
+ break;
+ }
if (w->power) {
d = w->dapm;
@@ -3266,7 +3274,7 @@ void snd_soc_dapm_shutdown(struct snd_soc_card *card)
{
struct snd_soc_codec *codec;
- list_for_each_entry(codec, &card->codec_dev_list, list) {
+ list_for_each_entry(codec, &card->codec_dev_list, card_list) {
soc_dapm_shutdown_codec(&codec->dapm);
if (codec->dapm.bias_level == SND_SOC_BIAS_STANDBY)
snd_soc_dapm_set_bias_level(&codec->dapm,