diff --git a/asoc/codecs/wcd937x/wcd937x.c b/asoc/codecs/wcd937x/wcd937x.c index ab610758b7b3..e5525d5801fa 100644 --- a/asoc/codecs/wcd937x/wcd937x.c +++ b/asoc/codecs/wcd937x/wcd937x.c @@ -131,10 +131,6 @@ static int wcd937x_init_reg(struct snd_soc_component *component) 0xFF, 0x3A); snd_soc_component_update_bits(component, WCD937X_RX_OCP_CTL, 0x0F, 0x02); - snd_soc_component_update_bits(component, WCD937X_HPH_R_TEST, - 0x01, 0x01); - snd_soc_component_update_bits(component, WCD937X_HPH_L_TEST, - 0x01, 0x01); return 0; } @@ -677,6 +673,8 @@ static int wcd937x_codec_enable_hphr_pa(struct snd_soc_dapm_widget *w, snd_soc_component_update_bits(component, WCD937X_HPH_NEW_INT_HPH_TIMER1, 0x02, 0x02); + snd_soc_component_update_bits(component, + WCD937X_HPH_R_TEST, 0x01, 0x01); if (hph_mode == CLS_AB || hph_mode == CLS_AB_HIFI) snd_soc_component_update_bits(component, WCD937X_ANA_RX_SUPPLIES, @@ -687,6 +685,8 @@ static int wcd937x_codec_enable_hphr_pa(struct snd_soc_dapm_widget *w, (WCD_RX2 << 0x10)); break; case SND_SOC_DAPM_PRE_PMD: + snd_soc_component_update_bits(component, + WCD937X_HPH_R_TEST, 0x01, 0x00); if (wcd937x->update_wcd_event) wcd937x->update_wcd_event(wcd937x->handle, WCD_BOLERO_EVT_RX_MUTE, @@ -772,6 +772,8 @@ static int wcd937x_codec_enable_hphl_pa(struct snd_soc_dapm_widget *w, snd_soc_component_update_bits(component, WCD937X_HPH_NEW_INT_HPH_TIMER1, 0x02, 0x02); + snd_soc_component_update_bits(component, + WCD937X_HPH_L_TEST, 0x01, 0x01); if (hph_mode == CLS_AB || hph_mode == CLS_AB_HIFI) snd_soc_component_update_bits(component, WCD937X_ANA_RX_SUPPLIES, @@ -782,6 +784,8 @@ static int wcd937x_codec_enable_hphl_pa(struct snd_soc_dapm_widget *w, (WCD_RX1 << 0x10)); break; case SND_SOC_DAPM_PRE_PMD: + snd_soc_component_update_bits(component, + WCD937X_HPH_L_TEST, 0x01, 0x00); if (wcd937x->update_wcd_event) wcd937x->update_wcd_event(wcd937x->handle, WCD_BOLERO_EVT_RX_MUTE,