diff options
| -rw-r--r-- | sound/soc/codecs/msm8916-wcd-analog.c | 16 | 
1 files 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;  | 
