[alsa-devel] [PATCH 2/4] ASoC: msm8916-wcd-analog: Fix MIC BIAS Internal1
Srinivas Kandagatla
srinivas.kandagatla at linaro.org
Mon Jan 13 15:08:33 CET 2020
On 11/01/2020 16:40, Stephan Gerhold wrote:
> MIC BIAS Internal1 is broken at the moment because we always
> enable the internal rbias resistor to the TX2 line (connected to
> the headset microphone), rather than enabling the resistor connected
> to TX1.
>
> Move the RBIAS code to pm8916_wcd_analog_enable_micbias_int1/2()
> to fix this.
>
> Fixes: 585e881e5b9e ("ASoC: codecs: Add msm8916-wcd analog codec")
> Cc: Srinivas Kandagatla <srinivas.kandagatla at linaro.org>
> Signed-off-by: Stephan Gerhold <stephan at gerhold.net>
LGTM,
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla at linaro.org>
> ---
> sound/soc/codecs/msm8916-wcd-analog.c | 16 +++++++++++++---
> 1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/sound/soc/codecs/msm8916-wcd-analog.c b/sound/soc/codecs/msm8916-wcd-analog.c
> index 30b19f12fabc..1f7964beb20c 100644
> --- a/sound/soc/codecs/msm8916-wcd-analog.c
> +++ b/sound/soc/codecs/msm8916-wcd-analog.c
> @@ -396,9 +396,6 @@ static int pm8916_wcd_analog_enable_micbias_int(struct snd_soc_component
>
> switch (event) {
> case SND_SOC_DAPM_PRE_PMU:
> - snd_soc_component_update_bits(component, CDC_A_MICB_1_INT_RBIAS,
> - MICB_1_INT_TX2_INT_RBIAS_EN_MASK,
> - MICB_1_INT_TX2_INT_RBIAS_EN_ENABLE);
> snd_soc_component_update_bits(component, reg, MICB_1_EN_PULL_DOWN_EN_MASK, 0);
> snd_soc_component_update_bits(component, CDC_A_MICB_1_EN,
> MICB_1_EN_OPA_STG2_TAIL_CURR_MASK,
> @@ -448,6 +445,14 @@ static int pm8916_wcd_analog_enable_micbias_int1(struct
> struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
> struct pm8916_wcd_analog_priv *wcd = snd_soc_component_get_drvdata(component);
>
> + switch (event) {
> + case SND_SOC_DAPM_PRE_PMU:
> + snd_soc_component_update_bits(component, CDC_A_MICB_1_INT_RBIAS,
> + MICB_1_INT_TX1_INT_RBIAS_EN_MASK,
> + MICB_1_INT_TX1_INT_RBIAS_EN_ENABLE);
> + break;
> + }
> +
> return pm8916_wcd_analog_enable_micbias_int(component, event, w->reg,
> wcd->micbias1_cap_mode);
> }
> @@ -558,6 +563,11 @@ static int pm8916_wcd_analog_enable_micbias_int2(struct
> struct pm8916_wcd_analog_priv *wcd = snd_soc_component_get_drvdata(component);
>
> switch (event) {
> + case SND_SOC_DAPM_PRE_PMU:
> + snd_soc_component_update_bits(component, CDC_A_MICB_1_INT_RBIAS,
> + MICB_1_INT_TX2_INT_RBIAS_EN_MASK,
> + MICB_1_INT_TX2_INT_RBIAS_EN_ENABLE);
> + break;
> case SND_SOC_DAPM_POST_PMU:
> pm8916_mbhc_configure_bias(wcd, true);
> break;
>
More information about the Alsa-devel
mailing list