From: Mark Brown Date: Fri, 10 Nov 2017 21:31:13 +0000 (+0000) Subject: Merge remote-tracking branches 'asoc/topic/dwc', 'asoc/topic/fallthrough', 'asoc... X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=033d56f6c0e0e53ee4fb1b87e49d301be6f46707;p=linux.git Merge remote-tracking branches 'asoc/topic/dwc', 'asoc/topic/fallthrough', 'asoc/topic/fsi', 'asoc/topic/fsl' and 'asoc/topic/graph' into asoc-next --- 033d56f6c0e0e53ee4fb1b87e49d301be6f46707 diff --cc sound/soc/codecs/msm8916-wcd-analog.c index a42f8ebb96701,549c269acc7df,518fa2a4ac787,549c269acc7df,a78802920c3cc,549c269acc7df..8d5821bddf582 --- a/sound/soc/codecs/msm8916-wcd-analog.c +++ b/sound/soc/codecs/msm8916-wcd-analog.c @@@@@@@ -102,12 -102,12 -102,12 -102,12 -93,8 -102,12 +102,12 @@@@@@@ #define MICB_1_EN_TX3_GND_SEL_TX_GND 0 #define CDC_A_MICB_1_VAL (0xf141) + #define MICB_MIN_VAL 1600 + #define MICB_STEP_SIZE 50 --- -#define MICB_VOLTAGE_REGVAL(v) ((v - MICB_MIN_VAL)/MICB_STEP_SIZE) +++++#define MICB_VOLTAGE_REGVAL(v) (((v - MICB_MIN_VAL)/MICB_STEP_SIZE) << 3) #define MICB_1_VAL_MICB_OUT_VAL_MASK GENMASK(7, 3) #define MICB_1_VAL_MICB_OUT_VAL_V2P70V ((0x16) << 3) + #define MICB_1_VAL_MICB_OUT_VAL_V1P80V ((0x4) << 3) #define CDC_A_MICB_1_CTL (0xf142) #define MICB_1_CTL_CFILT_REF_SEL_MASK BIT(1) @@@@@@@ -348,18 -348,17 -348,17 -348,17 -271,12 -348,17 +348,18 @@@@@@@ static void pm8916_wcd_analog_micbias_e MICB_1_CTL_INT_PRECHARG_BYP_EXT_PRECHRG_SEL | MICB_1_CTL_EXT_PRECHARG_EN_ENABLE); - snd_soc_write(codec, CDC_A_MICB_1_VAL, MICB_1_VAL_MICB_OUT_VAL_V2P70V); - /* - * Special headset needs MICBIAS as 2.7V so wait for - * 50 msec for the MICBIAS to reach 2.7 volts. - */ - msleep(50); + if (wcd->micbias_mv) { --- - snd_soc_write(codec, CDC_A_MICB_1_VAL, --- - MICB_VOLTAGE_REGVAL(wcd->micbias_mv)); +++++ snd_soc_update_bits(codec, CDC_A_MICB_1_VAL, +++++ MICB_1_VAL_MICB_OUT_VAL_MASK, +++++ MICB_VOLTAGE_REGVAL(wcd->micbias_mv)); + /* + * Special headset needs MICBIAS as 2.7V so wait for + * 50 msec for the MICBIAS to reach 2.7 volts. + */ + if (wcd->micbias_mv >= 2700) + msleep(50); + } + snd_soc_update_bits(codec, CDC_A_MICB_1_CTL, MICB_1_CTL_EXT_PRECHARG_EN_MASK | MICB_1_CTL_INT_PRECHARG_BYP_MASK, 0);