ASoC: Fully specify DC servo bits to update in wm_hubs
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 2 Sep 2009 17:51:19 +0000 (18:51 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 2 Sep 2009 18:36:22 +0000 (19:36 +0100)
Avoids potential issues if we read back unexpected values during
a read/modify/write cycle.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/wm_hubs.c

index 41699bd1986c7176aec9c6673e9c7b3372f4abbf..e542027eea89017d0a8aa22639eb45f307c4f543 100644 (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,