From: Mark Brown Date: Tue, 2 Nov 2010 13:58:49 +0000 (-0400) Subject: Merge branch 'for-2.6.37' into HEAD X-Git-Tag: v2.6.38-rc1~7^2^2~218 X-Git-Url: http://git.cascardo.info/?p=cascardo%2Flinux.git;a=commitdiff_plain;h=9e3be1edbe5ca57df51140b523168237b3a01f4d Merge branch 'for-2.6.37' into HEAD WARN() fix from Joe moved. Conflicts: sound/soc/codecs/wm_hubs.c --- 9e3be1edbe5ca57df51140b523168237b3a01f4d diff --cc sound/soc/codecs/wm_hubs.c index 31c2a5724d85,19ca782ac970..008b1f27aea8 --- a/sound/soc/codecs/wm_hubs.c +++ b/sound/soc/codecs/wm_hubs.c @@@ -113,29 -101,6 +113,29 @@@ static void calibrate_dc_servo(struct s wait_for_dc_servo(codec, WM8993_DCS_TRIG_SERIES_0 | WM8993_DCS_TRIG_SERIES_1); + /* Different chips in the family support different readback + * methods. + */ + switch (hubs->dcs_readback_mode) { + case 0: + reg_l = snd_soc_read(codec, WM8993_DC_SERVO_READBACK_1) + & WM8993_DCS_INTEG_CHAN_0_MASK;; + reg_r = snd_soc_read(codec, WM8993_DC_SERVO_READBACK_2) + & WM8993_DCS_INTEG_CHAN_1_MASK; + break; + case 1: + reg = snd_soc_read(codec, WM8993_DC_SERVO_3); + reg_l = (reg & WM8993_DCS_DAC_WR_VAL_1_MASK) + >> WM8993_DCS_DAC_WR_VAL_1_SHIFT; + reg_r = reg & WM8993_DCS_DAC_WR_VAL_0_MASK; + break; + default: - WARN(1, "Unknown DCS readback method"); ++ WARN(1, "Unknown DCS readback method\n"); + break; + } + + dev_dbg(codec->dev, "DCS input: %x %x\n", reg_l, reg_r); + /* Apply correction to DC servo result */ if (hubs->dcs_codes) { dev_dbg(codec->dev, "Applying %d code DC servo correction\n",