summaryrefslogtreecommitdiff
path: root/sound/soc/codecs/arizona.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2013-03-25 02:50:23 +0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2013-03-26 22:49:04 +0400
commit1a2c7d568f624307c5821f31e54727a4b374855c (patch)
treed7cb9c4fa68a8a7dd2f3ffb37d9adc3f488e020d /sound/soc/codecs/arizona.c
parent49bc389ec2318b75e86a3c3239a495d7a8311046 (diff)
downloadlinux-1a2c7d568f624307c5821f31e54727a4b374855c.tar.xz
ASoC: arizona: Add delay after powering up line level outputs
Ensure that the outputs are fully enabled before we begin passing audio through them. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/arizona.c')
-rw-r--r--sound/soc/codecs/arizona.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/sound/soc/codecs/arizona.c b/sound/soc/codecs/arizona.c
index abdd019c5b6e..389f23253831 100644
--- a/sound/soc/codecs/arizona.c
+++ b/sound/soc/codecs/arizona.c
@@ -579,6 +579,24 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
struct snd_kcontrol *kcontrol,
int event)
{
+ switch (event) {
+ case SND_SOC_DAPM_POST_PMU:
+ switch (w->shift) {
+ case ARIZONA_OUT1L_ENA_SHIFT:
+ case ARIZONA_OUT1R_ENA_SHIFT:
+ case ARIZONA_OUT2L_ENA_SHIFT:
+ case ARIZONA_OUT2R_ENA_SHIFT:
+ case ARIZONA_OUT3L_ENA_SHIFT:
+ case ARIZONA_OUT3R_ENA_SHIFT:
+ msleep(17);
+ break;
+
+ default:
+ break;
+ }
+ break;
+ }
+
return 0;
}
EXPORT_SYMBOL_GPL(arizona_out_ev);