1
0
Fork 0

ASoC: Fully specify DC servo bits to update in wm_hubs

Avoids potential issues if we read back unexpected values during
a read/modify/write cycle.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
hifive-unleashed-5.1
Mark Brown 2009-09-02 18:51:19 +01:00
parent 5c0d38c947
commit 2eff31e809
1 changed files with 2 additions and 10 deletions

View File

@ -273,17 +273,12 @@ static int hp_event(struct snd_soc_dapm_widget *w,
/* Start the DC servo */
snd_soc_update_bits(codec, WM8993_DC_SERVO_0,
WM8993_DCS_ENA_CHAN_0 |
WM8993_DCS_ENA_CHAN_1 |
WM8993_DCS_TRIG_STARTUP_1 |
WM8993_DCS_TRIG_STARTUP_0,
0xFFFF,
WM8993_DCS_ENA_CHAN_0 |
WM8993_DCS_ENA_CHAN_1 |
WM8993_DCS_TRIG_STARTUP_1 |
WM8993_DCS_TRIG_STARTUP_0);
wait_for_dc_servo(codec);
snd_soc_update_bits(codec, WM8993_DC_SERVO_1,
WM8993_DCS_TIMER_PERIOD_01_MASK, 0xa);
reg |= WM8993_HPOUT1R_OUTP | WM8993_HPOUT1R_RMV_SHORT |
WM8993_HPOUT1L_OUTP | WM8993_HPOUT1L_RMV_SHORT;
@ -298,11 +293,8 @@ static int hp_event(struct snd_soc_dapm_widget *w,
WM8993_HPOUT1R_DLY |
WM8993_HPOUT1R_OUTP);
snd_soc_update_bits(codec, WM8993_DC_SERVO_1,
WM8993_DCS_TIMER_PERIOD_01_MASK, 0);
snd_soc_update_bits(codec, WM8993_DC_SERVO_0,
WM8993_DCS_ENA_CHAN_0 |
WM8993_DCS_ENA_CHAN_1, 0);
0xffff, 0);
snd_soc_write(codec, WM8993_ANALOGUE_HP_0, reg);
snd_soc_update_bits(codec, WM8993_POWER_MANAGEMENT_1,