diff options
-rw-r--r-- | include/sound/soc.h | 2 | ||||
-rw-r--r-- | sound/soc/soc-dapm.c | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h index 0eea08e1bdd5..4abc2f8fe77a 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h | |||
@@ -632,6 +632,8 @@ struct snd_soc_card { | |||
632 | /* callbacks */ | 632 | /* callbacks */ |
633 | int (*set_bias_level)(struct snd_soc_card *, | 633 | int (*set_bias_level)(struct snd_soc_card *, |
634 | enum snd_soc_bias_level level); | 634 | enum snd_soc_bias_level level); |
635 | int (*set_bias_level_post)(struct snd_soc_card *, | ||
636 | enum snd_soc_bias_level level); | ||
635 | 637 | ||
636 | long pmdown_time; | 638 | long pmdown_time; |
637 | 639 | ||
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 6a29d59dabaf..9af2d8ad0895 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c | |||
@@ -162,6 +162,10 @@ static int snd_soc_dapm_set_bias_level(struct snd_soc_card *card, | |||
162 | else | 162 | else |
163 | dapm->bias_level = level; | 163 | dapm->bias_level = level; |
164 | } | 164 | } |
165 | if (ret == 0) { | ||
166 | if (card && card->set_bias_level_post) | ||
167 | ret = card->set_bias_level_post(card, level); | ||
168 | } | ||
165 | 169 | ||
166 | trace_snd_soc_bias_level_done(card, level); | 170 | trace_snd_soc_bias_level_done(card, level); |
167 | 171 | ||