Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c4dd7951 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ASoC: wcd: Update headset and speaker path registers"

parents 2ab645b4 573fa7c9
Loading
Loading
Loading
Loading
+23 −5
Original line number Diff line number Diff line
@@ -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);
@@ -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__,
@@ -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:
@@ -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);