mirror of
https://github.com/torvalds/linux.git
synced 2024-11-05 11:32:04 +00:00
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>
This commit is contained in:
parent
4b66672901
commit
11cef5f07b
@ -105,12 +105,20 @@ static void calibrate_dc_servo(struct snd_soc_codec *codec)
|
||||
return;
|
||||
}
|
||||
|
||||
/* Set for 32 series updates */
|
||||
snd_soc_update_bits(codec, WM8993_DC_SERVO_1,
|
||||
WM8993_DCS_SERIES_NO_01_MASK,
|
||||
32 << WM8993_DCS_SERIES_NO_01_SHIFT);
|
||||
wait_for_dc_servo(codec,
|
||||
WM8993_DCS_TRIG_SERIES_0 | WM8993_DCS_TRIG_SERIES_1);
|
||||
/* Devices not using a DCS code correction have startup mode */
|
||||
if (hubs->dcs_codes) {
|
||||
/* Set for 32 series updates */
|
||||
snd_soc_update_bits(codec, WM8993_DC_SERVO_1,
|
||||
WM8993_DCS_SERIES_NO_01_MASK,
|
||||
32 << WM8993_DCS_SERIES_NO_01_SHIFT);
|
||||
wait_for_dc_servo(codec,
|
||||
WM8993_DCS_TRIG_SERIES_0 |
|
||||
WM8993_DCS_TRIG_SERIES_1);
|
||||
} else {
|
||||
wait_for_dc_servo(codec,
|
||||
WM8993_DCS_TRIG_STARTUP_0 |
|
||||
WM8993_DCS_TRIG_STARTUP_1);
|
||||
}
|
||||
|
||||
/* Different chips in the family support different readback
|
||||
* methods.
|
||||
|
Loading…
Reference in New Issue
Block a user