summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2009-09-02 18:51:19 +0100
committerMark Brown <broonie@opensource.wolfsonmicro.com>2009-09-02 19:36:22 +0100
commit2eff31e8096513d03b0b6484b85fd2c417eb87e8 (patch)
treed84f4ada91be0842a03ea8a973b8ae7a3b1664e9
parent5c0d38c9478e79ab7deb1b470dd181d2308a608e (diff)
downloadlinux-2eff31e8096513d03b0b6484b85fd2c417eb87e8.tar.bz2
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>
-rw-r--r--sound/soc/codecs/wm_hubs.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/sound/soc/codecs/wm_hubs.c b/sound/soc/codecs/wm_hubs.c
index 41699bd1986c..e542027eea89 100644
--- a/sound/soc/codecs/wm_hubs.c
+++ b/sound/soc/codecs/wm_hubs.c
@@ -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,