diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-11-26 12:23:44 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-11-27 05:32:13 -0500 |
commit | 11cef5f07ba0e925af432fc3229fb87585ccccf0 (patch) | |
tree | f8d2391b7d578ce46cb460f95dfe0d24cc224d6b | |
parent | 4b666729010cbf315c9099b956b193df8edc6753 (diff) |
ASoC: Use DC servo startup mode when not doing DCS correction
Devices which do not have a DCS correction applied can use the explicit
DC servo startup mode for optimal startup performance. This most
immediately affects the WM8958.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
-rw-r--r-- | sound/soc/codecs/wm_hubs.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/sound/soc/codecs/wm_hubs.c b/sound/soc/codecs/wm_hubs.c index e7a19d6ada50..b24ba9fa7ef7 100644 --- a/sound/soc/codecs/wm_hubs.c +++ b/sound/soc/codecs/wm_hubs.c | |||
@@ -105,12 +105,20 @@ static void calibrate_dc_servo(struct snd_soc_codec *codec) | |||
105 | return; | 105 | return; |
106 | } | 106 | } |
107 | 107 | ||
108 | /* Set for 32 series updates */ | 108 | /* Devices not using a DCS code correction have startup mode */ |
109 | snd_soc_update_bits(codec, WM8993_DC_SERVO_1, | 109 | if (hubs->dcs_codes) { |
110 | WM8993_DCS_SERIES_NO_01_MASK, | 110 | /* Set for 32 series updates */ |
111 | 32 << WM8993_DCS_SERIES_NO_01_SHIFT); | 111 | snd_soc_update_bits(codec, WM8993_DC_SERVO_1, |
112 | wait_for_dc_servo(codec, | 112 | WM8993_DCS_SERIES_NO_01_MASK, |
113 | WM8993_DCS_TRIG_SERIES_0 | WM8993_DCS_TRIG_SERIES_1); | 113 | 32 << WM8993_DCS_SERIES_NO_01_SHIFT); |
114 | wait_for_dc_servo(codec, | ||
115 | WM8993_DCS_TRIG_SERIES_0 | | ||
116 | WM8993_DCS_TRIG_SERIES_1); | ||
117 | } else { | ||
118 | wait_for_dc_servo(codec, | ||
119 | WM8993_DCS_TRIG_STARTUP_0 | | ||
120 | WM8993_DCS_TRIG_STARTUP_1); | ||
121 | } | ||
114 | 122 | ||
115 | /* Different chips in the family support different readback | 123 | /* Different chips in the family support different readback |
116 | * methods. | 124 | * methods. |