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

Commit 196d10d9 authored by Aravind Kumar's avatar Aravind Kumar
Browse files

ASoC: msm8x16-wcd: enable ocp when hph pa is enabled



The present code enables over current protection for
headphones during boot up. This causes leakage current
on the cdc boost rail when the device is in idle state.
The change enables the ocp before hph pa is enabled
and disables them after hph pa is disabled.

CRs-Fixed: 684587
Change-Id: I549dce1b76221f2cf822dac0c819a0a673a3a960
Signed-off-by: default avatarAravind Kumar <akumark@codeaurora.org>
parent 5df047d2
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -2172,6 +2172,12 @@ static int msm8x16_wcd_hph_pa_event(struct snd_soc_dapm_widget *w,

	switch (event) {
	case SND_SOC_DAPM_PRE_PMU:
		if (w->shift == 5)
			snd_soc_update_bits(codec,
				MSM8X16_WCD_A_ANALOG_RX_HPH_L_TEST, 0x04, 0x04);
		else if (w->shift == 4)
			snd_soc_update_bits(codec,
				MSM8X16_WCD_A_ANALOG_RX_HPH_R_TEST, 0x04, 0x04);
		snd_soc_update_bits(codec,
				MSM8X16_WCD_A_ANALOG_NCP_FBCTRL, 0x20, 0x20);
		break;
@@ -2206,9 +2212,13 @@ static int msm8x16_wcd_hph_pa_event(struct snd_soc_dapm_widget *w,
		if (w->shift == 5) {
			clear_bit(WCD_MBHC_HPHL_PA_OFF_ACK,
				&msm8x16_wcd->mbhc.hph_pa_dac_state);
			snd_soc_update_bits(codec,
				MSM8X16_WCD_A_ANALOG_RX_HPH_L_TEST, 0x04, 0x00);
		} else if (w->shift == 4) {
			clear_bit(WCD_MBHC_HPHR_PA_OFF_ACK,
				&msm8x16_wcd->mbhc.hph_pa_dac_state);
			snd_soc_update_bits(codec,
				MSM8X16_WCD_A_ANALOG_RX_HPH_R_TEST, 0x04, 0x00);
		}
		snd_soc_update_bits(codec,
				MSM8X16_WCD_A_ANALOG_NCP_FBCTRL, 0x20, 0x00);
@@ -3011,8 +3021,6 @@ static const struct msm8x16_wcd_reg_mask_val
	 */
	{MSM8X16_WCD_A_ANALOG_RX_COM_OCP_CTL, 0xFF, 0xD1},
	{MSM8X16_WCD_A_ANALOG_RX_COM_OCP_COUNT, 0xFF, 0xFF},
	{MSM8X16_WCD_A_ANALOG_RX_HPH_L_TEST, 0x04, 0x04},
	{MSM8X16_WCD_A_ANALOG_RX_HPH_R_TEST, 0x04, 0x04},
};

static void msm8x16_wcd_codec_init_reg(struct snd_soc_codec *codec)