diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/soc-dapm.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 5be4f9a2edb8..114f2af5f304 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c | |||
@@ -3537,10 +3537,13 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_free); | |||
3537 | 3537 | ||
3538 | static void soc_dapm_shutdown_codec(struct snd_soc_dapm_context *dapm) | 3538 | static void soc_dapm_shutdown_codec(struct snd_soc_dapm_context *dapm) |
3539 | { | 3539 | { |
3540 | struct snd_soc_card *card = dapm->card; | ||
3540 | struct snd_soc_dapm_widget *w; | 3541 | struct snd_soc_dapm_widget *w; |
3541 | LIST_HEAD(down_list); | 3542 | LIST_HEAD(down_list); |
3542 | int powerdown = 0; | 3543 | int powerdown = 0; |
3543 | 3544 | ||
3545 | mutex_lock(&card->dapm_mutex); | ||
3546 | |||
3544 | list_for_each_entry(w, &dapm->card->widgets, list) { | 3547 | list_for_each_entry(w, &dapm->card->widgets, list) { |
3545 | if (w->dapm != dapm) | 3548 | if (w->dapm != dapm) |
3546 | continue; | 3549 | continue; |
@@ -3563,6 +3566,8 @@ static void soc_dapm_shutdown_codec(struct snd_soc_dapm_context *dapm) | |||
3563 | snd_soc_dapm_set_bias_level(dapm, | 3566 | snd_soc_dapm_set_bias_level(dapm, |
3564 | SND_SOC_BIAS_STANDBY); | 3567 | SND_SOC_BIAS_STANDBY); |
3565 | } | 3568 | } |
3569 | |||
3570 | mutex_unlock(&card->dapm_mutex); | ||
3566 | } | 3571 | } |
3567 | 3572 | ||
3568 | /* | 3573 | /* |