ASOC: wcd934x: Fix finding of correct AMIC
During Tx path enablement, amic information is needed for proper power level settings and for better performance. Existing API returns incorrect amic information. Changes provide the correct amic information. Change-Id: I18f3f35212cae47e5d944c2e075f03889147722b Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
这个提交包含在:

提交者
Gerrit - the friendly Code Review server

父节点
e542fb699a
当前提交
ca7ca2c804
@@ -4132,7 +4132,7 @@ static int tavil_codec_find_amic_input(struct snd_soc_codec *codec,
|
||||
|
||||
if (adc_mux_n < 3) {
|
||||
adc_mux_in_reg = WCD934X_CDC_TX_INP_MUX_ADC_MUX0_CFG1 +
|
||||
adc_mux_n;
|
||||
2 * adc_mux_n;
|
||||
mask = 0x03;
|
||||
shift = 0;
|
||||
amic_mux_sel_reg = WCD934X_CDC_TX_INP_MUX_ADC_MUX0_CFG0 +
|
||||
@@ -4145,7 +4145,7 @@ static int tavil_codec_find_amic_input(struct snd_soc_codec *codec,
|
||||
2 * adc_mux_n;
|
||||
} else if (adc_mux_n < 7) {
|
||||
adc_mux_in_reg = WCD934X_CDC_TX_INP_MUX_ADC_MUX0_CFG1 +
|
||||
(adc_mux_n - 4);
|
||||
2 * (adc_mux_n - 4);
|
||||
mask = 0x0C;
|
||||
shift = 2;
|
||||
amic_mux_sel_reg = WCD934X_CDC_TX_INP_MUX_ADC_MUX4_CFG0 +
|
||||
@@ -4158,24 +4158,25 @@ static int tavil_codec_find_amic_input(struct snd_soc_codec *codec,
|
||||
adc_mux_n - 4;
|
||||
} else if (adc_mux_n < 12) {
|
||||
adc_mux_in_reg = WCD934X_CDC_TX_INP_MUX_ADC_MUX0_CFG1 +
|
||||
((adc_mux_n == 8) ? (adc_mux_n - 8) :
|
||||
(adc_mux_n - 9));
|
||||
2 * (((adc_mux_n == 8) ? (adc_mux_n - 8) :
|
||||
(adc_mux_n - 9)));
|
||||
mask = 0x30;
|
||||
shift = 4;
|
||||
amic_mux_sel_reg = WCD934X_CDC_TX_INP_MUX_ADC_MUX4_CFG0 +
|
||||
adc_mux_n - 4;
|
||||
amic_mux_sel_reg = WCD934X_CDC_TX_INP_MUX_ADC_MUX8_CFG0 +
|
||||
((adc_mux_n == 8) ? (adc_mux_n - 8) :
|
||||
(adc_mux_n - 9));
|
||||
} else if (adc_mux_n < 13) {
|
||||
adc_mux_in_reg = WCD934X_CDC_TX_INP_MUX_ADC_MUX3_CFG1;
|
||||
mask = 0x30;
|
||||
shift = 4;
|
||||
amic_mux_sel_reg = WCD934X_CDC_TX_INP_MUX_ADC_MUX4_CFG0 +
|
||||
adc_mux_n - 4;
|
||||
adc_mux_n - 5;
|
||||
} else {
|
||||
adc_mux_in_reg = WCD934X_CDC_TX_INP_MUX_ADC_MUX0_CFG1;
|
||||
mask = 0xC0;
|
||||
shift = 6;
|
||||
amic_mux_sel_reg = WCD934X_CDC_TX_INP_MUX_ADC_MUX4_CFG0 +
|
||||
adc_mux_n - 4;
|
||||
adc_mux_n - 5;
|
||||
}
|
||||
|
||||
is_amic = (((snd_soc_read(codec, adc_mux_in_reg) & mask) >> shift)
|
||||
|
在新工单中引用
屏蔽一个用户