aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2017-10-26 03:45:33 -0400
committerMark Brown <broonie@kernel.org>2017-10-26 03:45:33 -0400
commitcc0b8139d87b6d9efa3ae24cdb8d92e48da0143f (patch)
tree850ad1743c8feb001542cc316222471907286b38
parent613733f0bd096fb74e39d1c150decb20da187167 (diff)
parent664611e7e02f76fbc5470ef545b2657ed25c292b (diff)
Merge remote-tracking branch 'asoc/fix/msm8916' into asoc-linus
-rw-r--r--sound/soc/codecs/msm8916-wcd-analog.c7
-rw-r--r--sound/soc/codecs/msm8916-wcd-digital.c4
2 files changed, 6 insertions, 5 deletions
diff --git a/sound/soc/codecs/msm8916-wcd-analog.c b/sound/soc/codecs/msm8916-wcd-analog.c
index 549c269acc7d..a42f8ebb9670 100644
--- a/sound/soc/codecs/msm8916-wcd-analog.c
+++ b/sound/soc/codecs/msm8916-wcd-analog.c
@@ -104,7 +104,7 @@
104#define CDC_A_MICB_1_VAL (0xf141) 104#define CDC_A_MICB_1_VAL (0xf141)
105#define MICB_MIN_VAL 1600 105#define MICB_MIN_VAL 1600
106#define MICB_STEP_SIZE 50 106#define MICB_STEP_SIZE 50
107#define MICB_VOLTAGE_REGVAL(v) ((v - MICB_MIN_VAL)/MICB_STEP_SIZE) 107#define MICB_VOLTAGE_REGVAL(v) (((v - MICB_MIN_VAL)/MICB_STEP_SIZE) << 3)
108#define MICB_1_VAL_MICB_OUT_VAL_MASK GENMASK(7, 3) 108#define MICB_1_VAL_MICB_OUT_VAL_MASK GENMASK(7, 3)
109#define MICB_1_VAL_MICB_OUT_VAL_V2P70V ((0x16) << 3) 109#define MICB_1_VAL_MICB_OUT_VAL_V2P70V ((0x16) << 3)
110#define MICB_1_VAL_MICB_OUT_VAL_V1P80V ((0x4) << 3) 110#define MICB_1_VAL_MICB_OUT_VAL_V1P80V ((0x4) << 3)
@@ -349,8 +349,9 @@ static void pm8916_wcd_analog_micbias_enable(struct snd_soc_codec *codec)
349 | MICB_1_CTL_EXT_PRECHARG_EN_ENABLE); 349 | MICB_1_CTL_EXT_PRECHARG_EN_ENABLE);
350 350
351 if (wcd->micbias_mv) { 351 if (wcd->micbias_mv) {
352 snd_soc_write(codec, CDC_A_MICB_1_VAL, 352 snd_soc_update_bits(codec, CDC_A_MICB_1_VAL,
353 MICB_VOLTAGE_REGVAL(wcd->micbias_mv)); 353 MICB_1_VAL_MICB_OUT_VAL_MASK,
354 MICB_VOLTAGE_REGVAL(wcd->micbias_mv));
354 /* 355 /*
355 * Special headset needs MICBIAS as 2.7V so wait for 356 * Special headset needs MICBIAS as 2.7V so wait for
356 * 50 msec for the MICBIAS to reach 2.7 volts. 357 * 50 msec for the MICBIAS to reach 2.7 volts.
diff --git a/sound/soc/codecs/msm8916-wcd-digital.c b/sound/soc/codecs/msm8916-wcd-digital.c
index 66df8f810f0d..a10a724eb448 100644
--- a/sound/soc/codecs/msm8916-wcd-digital.c
+++ b/sound/soc/codecs/msm8916-wcd-digital.c
@@ -238,7 +238,7 @@ static const struct soc_enum rx_mix2_inp1_chain_enum = SOC_ENUM_SINGLE(
238static const struct soc_enum rx2_mix1_inp_enum[] = { 238static const struct soc_enum rx2_mix1_inp_enum[] = {
239 SOC_ENUM_SINGLE(LPASS_CDC_CONN_RX2_B1_CTL, 0, 6, rx_mix1_text), 239 SOC_ENUM_SINGLE(LPASS_CDC_CONN_RX2_B1_CTL, 0, 6, rx_mix1_text),
240 SOC_ENUM_SINGLE(LPASS_CDC_CONN_RX2_B1_CTL, 3, 6, rx_mix1_text), 240 SOC_ENUM_SINGLE(LPASS_CDC_CONN_RX2_B1_CTL, 3, 6, rx_mix1_text),
241 SOC_ENUM_SINGLE(LPASS_CDC_CONN_RX2_B1_CTL, 0, 6, rx_mix1_text), 241 SOC_ENUM_SINGLE(LPASS_CDC_CONN_RX2_B2_CTL, 0, 6, rx_mix1_text),
242}; 242};
243 243
244/* RX2 MIX2 */ 244/* RX2 MIX2 */
@@ -249,7 +249,7 @@ static const struct soc_enum rx2_mix2_inp1_chain_enum = SOC_ENUM_SINGLE(
249static const struct soc_enum rx3_mix1_inp_enum[] = { 249static const struct soc_enum rx3_mix1_inp_enum[] = {
250 SOC_ENUM_SINGLE(LPASS_CDC_CONN_RX3_B1_CTL, 0, 6, rx_mix1_text), 250 SOC_ENUM_SINGLE(LPASS_CDC_CONN_RX3_B1_CTL, 0, 6, rx_mix1_text),
251 SOC_ENUM_SINGLE(LPASS_CDC_CONN_RX3_B1_CTL, 3, 6, rx_mix1_text), 251 SOC_ENUM_SINGLE(LPASS_CDC_CONN_RX3_B1_CTL, 3, 6, rx_mix1_text),
252 SOC_ENUM_SINGLE(LPASS_CDC_CONN_RX3_B1_CTL, 0, 6, rx_mix1_text), 252 SOC_ENUM_SINGLE(LPASS_CDC_CONN_RX3_B2_CTL, 0, 6, rx_mix1_text),
253}; 253};
254 254
255/* DEC */ 255/* DEC */