|
@@ -3874,6 +3874,8 @@ static int tasha_codec_enable_hphr_pa(struct snd_soc_dapm_widget *w,
|
|
|
snd_soc_update_bits(codec, WCD9335_ANA_HPH, 0xC0, 0xC0);
|
|
|
}
|
|
|
set_bit(HPH_PA_DELAY, &tasha->status_mask);
|
|
|
+ if (!(strcmp(w->name, "HPHR PA")))
|
|
|
+ snd_soc_update_bits(codec, WCD9335_ANA_HPH, 0x40, 0x40);
|
|
|
break;
|
|
|
case SND_SOC_DAPM_POST_PMU:
|
|
|
if (!(strcmp(w->name, "ANC HPHR PA"))) {
|
|
@@ -3926,7 +3928,8 @@ static int tasha_codec_enable_hphr_pa(struct snd_soc_dapm_widget *w,
|
|
|
WCD_EVENT_PRE_HPHR_PA_OFF,
|
|
|
&tasha->mbhc);
|
|
|
tasha_codec_hph_post_pa_config(tasha, hph_mode, event);
|
|
|
- if (!(strcmp(w->name, "ANC HPHR PA")))
|
|
|
+ if (!(strcmp(w->name, "ANC HPHR PA")) ||
|
|
|
+ !(strcmp(w->name, "HPHR PA")))
|
|
|
snd_soc_update_bits(codec, WCD9335_ANA_HPH, 0x40, 0x00);
|
|
|
break;
|
|
|
case SND_SOC_DAPM_POST_PMD:
|
|
@@ -3967,6 +3970,8 @@ static int tasha_codec_enable_hphl_pa(struct snd_soc_dapm_widget *w,
|
|
|
(test_bit(HPH_PA_DELAY, &tasha->status_mask))) {
|
|
|
snd_soc_update_bits(codec, WCD9335_ANA_HPH, 0xC0, 0xC0);
|
|
|
}
|
|
|
+ if (!(strcmp(w->name, "HPHL PA")))
|
|
|
+ snd_soc_update_bits(codec, WCD9335_ANA_HPH, 0x80, 0x80);
|
|
|
set_bit(HPH_PA_DELAY, &tasha->status_mask);
|
|
|
break;
|
|
|
case SND_SOC_DAPM_POST_PMU:
|
|
@@ -4021,7 +4026,8 @@ static int tasha_codec_enable_hphl_pa(struct snd_soc_dapm_widget *w,
|
|
|
WCD_EVENT_PRE_HPHL_PA_OFF,
|
|
|
&tasha->mbhc);
|
|
|
tasha_codec_hph_post_pa_config(tasha, hph_mode, event);
|
|
|
- if (!(strcmp(w->name, "ANC HPHL PA")))
|
|
|
+ if (!(strcmp(w->name, "ANC HPHL PA")) ||
|
|
|
+ !(strcmp(w->name, "HPHL PA")))
|
|
|
snd_soc_update_bits(codec, WCD9335_ANA_HPH, 0x80, 0x00);
|
|
|
break;
|
|
|
case SND_SOC_DAPM_POST_PMD:
|
|
@@ -4366,6 +4372,9 @@ static int tasha_codec_hphr_dac_event(struct snd_soc_dapm_widget *w,
|
|
|
((hph_mode == CLS_H_LOHIFI) ?
|
|
|
CLS_H_HIFI : hph_mode));
|
|
|
|
|
|
+ if (!(strcmp(w->name, "RX INT2 DAC")))
|
|
|
+ snd_soc_update_bits(codec, WCD9335_ANA_HPH, 0x10, 0x10);
|
|
|
+
|
|
|
tasha_codec_hph_mode_config(codec, event, hph_mode);
|
|
|
|
|
|
if (tasha->anc_func)
|
|
@@ -4388,6 +4397,8 @@ static int tasha_codec_hphr_dac_event(struct snd_soc_dapm_widget *w,
|
|
|
snd_soc_update_bits(codec, WCD9335_HPH_L_DAC_CTL,
|
|
|
0x03, 0x00);
|
|
|
}
|
|
|
+ if (!(strcmp(w->name, "RX INT2 DAC")))
|
|
|
+ snd_soc_update_bits(codec, WCD9335_ANA_HPH, 0x10, 0x00);
|
|
|
break;
|
|
|
case SND_SOC_DAPM_POST_PMD:
|
|
|
/* 1000us required as per HW requirement */
|
|
@@ -4446,6 +4457,9 @@ static int tasha_codec_hphl_dac_event(struct snd_soc_dapm_widget *w,
|
|
|
((hph_mode == CLS_H_LOHIFI) ?
|
|
|
CLS_H_HIFI : hph_mode));
|
|
|
|
|
|
+ if (!(strcmp(w->name, "RX INT1 DAC")))
|
|
|
+ snd_soc_update_bits(codec, WCD9335_ANA_HPH, 0x20, 0x20);
|
|
|
+
|
|
|
tasha_codec_hph_mode_config(codec, event, hph_mode);
|
|
|
|
|
|
if (tasha->anc_func)
|
|
@@ -4475,6 +4489,8 @@ static int tasha_codec_hphl_dac_event(struct snd_soc_dapm_widget *w,
|
|
|
}
|
|
|
break;
|
|
|
case SND_SOC_DAPM_PRE_PMD:
|
|
|
+ if (!(strcmp(w->name, "RX INT1 DAC")))
|
|
|
+ snd_soc_update_bits(codec, WCD9335_ANA_HPH, 0x20, 0x00);
|
|
|
if ((hph_mode == CLS_H_LP) &&
|
|
|
(TASHA_IS_1_1(wcd9xxx))) {
|
|
|
snd_soc_update_bits(codec, WCD9335_HPH_L_DAC_CTL,
|
|
@@ -10967,12 +10983,12 @@ static const struct snd_soc_dapm_widget tasha_dapm_widgets[] = {
|
|
|
0, 0, tasha_codec_ear_dac_event,
|
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
|
|
|
SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD),
|
|
|
- SND_SOC_DAPM_DAC_E("RX INT1 DAC", NULL, WCD9335_ANA_HPH,
|
|
|
- 5, 0, tasha_codec_hphl_dac_event,
|
|
|
+ SND_SOC_DAPM_DAC_E("RX INT1 DAC", NULL, SND_SOC_NOPM,
|
|
|
+ 0, 0, tasha_codec_hphl_dac_event,
|
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
|
|
|
SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD),
|
|
|
- SND_SOC_DAPM_DAC_E("RX INT2 DAC", NULL, WCD9335_ANA_HPH,
|
|
|
- 4, 0, tasha_codec_hphr_dac_event,
|
|
|
+ SND_SOC_DAPM_DAC_E("RX INT2 DAC", NULL, SND_SOC_NOPM,
|
|
|
+ 0, 0, tasha_codec_hphr_dac_event,
|
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
|
|
|
SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD),
|
|
|
SND_SOC_DAPM_DAC_E("RX INT3 DAC", NULL, SND_SOC_NOPM,
|
|
@@ -10987,11 +11003,11 @@ static const struct snd_soc_dapm_widget tasha_dapm_widgets[] = {
|
|
|
SND_SOC_DAPM_DAC_E("RX INT6 DAC", NULL, SND_SOC_NOPM,
|
|
|
0, 0, tasha_codec_lineout_dac_event,
|
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
|
|
|
- SND_SOC_DAPM_PGA_E("HPHL PA", WCD9335_ANA_HPH, 7, 0, NULL, 0,
|
|
|
+ SND_SOC_DAPM_PGA_E("HPHL PA", SND_SOC_NOPM, 0, 0, NULL, 0,
|
|
|
tasha_codec_enable_hphl_pa,
|
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
|
|
|
SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD),
|
|
|
- SND_SOC_DAPM_PGA_E("HPHR PA", WCD9335_ANA_HPH, 6, 0, NULL, 0,
|
|
|
+ SND_SOC_DAPM_PGA_E("HPHR PA", SND_SOC_NOPM, 0, 0, NULL, 0,
|
|
|
tasha_codec_enable_hphr_pa,
|
|
|
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
|
|
|
SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD),
|