diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-08-22 12:25:37 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-10-14 22:51:33 -0400 |
commit | f95be9d6162adf1dba3f85060e24d14744bfaeb2 (patch) | |
tree | a5675966595cf177da06cd4ea63ac9e0f3b071f4 /sound/soc | |
parent | a3a1d9d21d34626bb0ba4b10035bc85841394f6b (diff) |
ASoC: wm8994: Tune VMID power down sequence
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/codecs/wm8994.c | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c index a7dfb6cbafdf..4d0ae9dcbc57 100644 --- a/sound/soc/codecs/wm8994.c +++ b/sound/soc/codecs/wm8994.c | |||
@@ -939,16 +939,10 @@ static void vmid_dereference(struct snd_soc_codec *codec) | |||
939 | WM8994_BIAS_SRC | | 939 | WM8994_BIAS_SRC | |
940 | WM8994_VMID_DISCH); | 940 | WM8994_VMID_DISCH); |
941 | 941 | ||
942 | switch (wm8994->vmid_mode) { | 942 | snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_1, |
943 | case WM8994_VMID_FORCE: | 943 | WM8994_VMID_SEL_MASK, 0); |
944 | msleep(350); | ||
945 | break; | ||
946 | default: | ||
947 | break; | ||
948 | } | ||
949 | 944 | ||
950 | snd_soc_update_bits(codec, WM8994_ADDITIONAL_CONTROL, | 945 | msleep(400); |
951 | WM8994_VROI, WM8994_VROI); | ||
952 | 946 | ||
953 | /* Active discharge */ | 947 | /* Active discharge */ |
954 | snd_soc_update_bits(codec, WM8994_ANTIPOP_1, | 948 | snd_soc_update_bits(codec, WM8994_ANTIPOP_1, |
@@ -957,17 +951,12 @@ static void vmid_dereference(struct snd_soc_codec *codec) | |||
957 | WM8994_LINEOUT1_DISCH | | 951 | WM8994_LINEOUT1_DISCH | |
958 | WM8994_LINEOUT2_DISCH); | 952 | WM8994_LINEOUT2_DISCH); |
959 | 953 | ||
960 | msleep(150); | ||
961 | |||
962 | snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_3, | 954 | snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_3, |
963 | WM8994_LINEOUT1N_ENA | | 955 | WM8994_LINEOUT1N_ENA | |
964 | WM8994_LINEOUT1P_ENA | | 956 | WM8994_LINEOUT1P_ENA | |
965 | WM8994_LINEOUT2N_ENA | | 957 | WM8994_LINEOUT2N_ENA | |
966 | WM8994_LINEOUT2P_ENA, 0); | 958 | WM8994_LINEOUT2P_ENA, 0); |
967 | 959 | ||
968 | snd_soc_update_bits(codec, WM8994_ADDITIONAL_CONTROL, | ||
969 | WM8994_VROI, 0); | ||
970 | |||
971 | /* Switch off startup biases */ | 960 | /* Switch off startup biases */ |
972 | snd_soc_update_bits(codec, WM8994_ANTIPOP_2, | 961 | snd_soc_update_bits(codec, WM8994_ANTIPOP_2, |
973 | WM8994_BIAS_SRC | | 962 | WM8994_BIAS_SRC | |
@@ -976,10 +965,7 @@ static void vmid_dereference(struct snd_soc_codec *codec) | |||
976 | WM8994_VMID_RAMP_MASK, 0); | 965 | WM8994_VMID_RAMP_MASK, 0); |
977 | 966 | ||
978 | snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_1, | 967 | snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_1, |
979 | WM8994_BIAS_ENA | WM8994_VMID_SEL_MASK, 0); | 968 | WM8994_VMID_SEL_MASK, 0); |
980 | |||
981 | snd_soc_update_bits(codec, WM8994_ANTIPOP_2, | ||
982 | WM8994_VMID_RAMP_MASK, 0); | ||
983 | } | 969 | } |
984 | 970 | ||
985 | pm_runtime_put(codec->dev); | 971 | pm_runtime_put(codec->dev); |