Skip to content

Commit

Permalink
ASoC: Avoid wraparound in wm_hubs DC servo correction
Browse files Browse the repository at this point in the history
If the correction wraps around then a substantial offset would be
introduced.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
  • Loading branch information
Mark Brown committed Apr 5, 2010
1 parent b5442a7 commit 3fa49e3
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions sound/soc/codecs/wm_hubs.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,13 +113,15 @@ static void calibrate_dc_servo(struct snd_soc_codec *codec)
/* HPOUT1L */
reg = snd_soc_read(codec, WM8993_DC_SERVO_READBACK_1) &
WM8993_DCS_INTEG_CHAN_0_MASK;;
reg += hubs->dcs_codes;
if (reg + hubs->dcs_codes > 0 && reg + hubs->dcs_codes < 0xff)
reg += hubs->dcs_codes;
dcs_cfg = reg << WM8993_DCS_DAC_WR_VAL_1_SHIFT;

/* HPOUT1R */
reg = snd_soc_read(codec, WM8993_DC_SERVO_READBACK_2) &
WM8993_DCS_INTEG_CHAN_1_MASK;
reg += hubs->dcs_codes;
if (reg + hubs->dcs_codes > 0 && reg + hubs->dcs_codes < 0xff)
reg += hubs->dcs_codes;
dcs_cfg |= reg;

/* Do it */
Expand Down

0 comments on commit 3fa49e3

Please sign in to comment.