Loading sound/soc/codecs/msm8x16-wcd.c +23 −5 Original line number Diff line number Diff line Loading @@ -1547,7 +1547,7 @@ static int msm8x16_wcd_codec_enable_dig_clk(struct snd_soc_dapm_widget *w, 0xA5, 0xA5); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_PERPH_RESET_CTL3, 0x07, 0x07); 0x0F, 0x0F); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_BOOST_EN_CTL, 0xDF, 0xDF); Loading Loading @@ -1893,17 +1893,31 @@ static int msm8x16_wcd_codec_enable_rx_bias(struct snd_soc_dapm_widget *w, switch (event) { case SND_SOC_DAPM_PRE_PMU: msm8x16_wcd->rx_bias_count++; if (msm8x16_wcd->rx_bias_count == 1) if (msm8x16_wcd->rx_bias_count == 1) { if (!(strcmp(w->name, "SPK_RX_BIAS"))) { snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_RX_COM_BIAS_DAC, 0x81, 0x80); } else { snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_RX_COM_BIAS_DAC, 0x81, 0x81); } } break; case SND_SOC_DAPM_POST_PMD: msm8x16_wcd->rx_bias_count--; if (msm8x16_wcd->rx_bias_count == 0) if (msm8x16_wcd->rx_bias_count == 0) { if (!(strcmp(w->name, "SPK_RX_BIAS"))) { snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_RX_COM_BIAS_DAC, 0x81, 0x00); } else { snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_RX_COM_BIAS_DAC, 0x81, 0x00); } } break; } dev_dbg(codec->dev, "%s bias_count = %d\n", __func__, Loading Loading @@ -1980,6 +1994,8 @@ static int msm8x16_wcd_hph_pa_event(struct snd_soc_dapm_widget *w, switch (event) { case SND_SOC_DAPM_PRE_PMU: snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_NCP_FBCTRL, 0x20, 0x20); break; case SND_SOC_DAPM_POST_PMU: Loading Loading @@ -2015,6 +2031,8 @@ static int msm8x16_wcd_hph_pa_event(struct snd_soc_dapm_widget *w, } break; case SND_SOC_DAPM_POST_PMD: snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_NCP_FBCTRL, 0x20, 0x00); usleep_range(4000, 4100); usleep_range(CODEC_DELAY_1_MS, CODEC_DELAY_1_1_MS); Loading Loading
sound/soc/codecs/msm8x16-wcd.c +23 −5 Original line number Diff line number Diff line Loading @@ -1547,7 +1547,7 @@ static int msm8x16_wcd_codec_enable_dig_clk(struct snd_soc_dapm_widget *w, 0xA5, 0xA5); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_PERPH_RESET_CTL3, 0x07, 0x07); 0x0F, 0x0F); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_BOOST_EN_CTL, 0xDF, 0xDF); Loading Loading @@ -1893,17 +1893,31 @@ static int msm8x16_wcd_codec_enable_rx_bias(struct snd_soc_dapm_widget *w, switch (event) { case SND_SOC_DAPM_PRE_PMU: msm8x16_wcd->rx_bias_count++; if (msm8x16_wcd->rx_bias_count == 1) if (msm8x16_wcd->rx_bias_count == 1) { if (!(strcmp(w->name, "SPK_RX_BIAS"))) { snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_RX_COM_BIAS_DAC, 0x81, 0x80); } else { snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_RX_COM_BIAS_DAC, 0x81, 0x81); } } break; case SND_SOC_DAPM_POST_PMD: msm8x16_wcd->rx_bias_count--; if (msm8x16_wcd->rx_bias_count == 0) if (msm8x16_wcd->rx_bias_count == 0) { if (!(strcmp(w->name, "SPK_RX_BIAS"))) { snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_RX_COM_BIAS_DAC, 0x81, 0x00); } else { snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_RX_COM_BIAS_DAC, 0x81, 0x00); } } break; } dev_dbg(codec->dev, "%s bias_count = %d\n", __func__, Loading Loading @@ -1980,6 +1994,8 @@ static int msm8x16_wcd_hph_pa_event(struct snd_soc_dapm_widget *w, switch (event) { case SND_SOC_DAPM_PRE_PMU: snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_NCP_FBCTRL, 0x20, 0x20); break; case SND_SOC_DAPM_POST_PMU: Loading Loading @@ -2015,6 +2031,8 @@ static int msm8x16_wcd_hph_pa_event(struct snd_soc_dapm_widget *w, } break; case SND_SOC_DAPM_POST_PMD: snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_NCP_FBCTRL, 0x20, 0x00); usleep_range(4000, 4100); usleep_range(CODEC_DELAY_1_MS, CODEC_DELAY_1_1_MS); Loading