ASoC: rt5663: Fine tune for the headphone output pop sound

The patch fine tunes for the headphone output pop sound.

Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
oder_chiou@realtek.com 2017-08-14 09:46:59 +08:00 committed by Mark Brown
parent 278982b50b
commit c5755fbc07

View File

@ -1565,6 +1565,10 @@ static int rt5663_jack_detect(struct snd_soc_codec *codec, int jack_insert)
val = snd_soc_read(codec, RT5663_EM_JACK_TYPE_2) & 0x0003; val = snd_soc_read(codec, RT5663_EM_JACK_TYPE_2) & 0x0003;
dev_dbg(codec->dev, "%s val = %d\n", __func__, val); dev_dbg(codec->dev, "%s val = %d\n", __func__, val);
snd_soc_update_bits(codec, RT5663_HP_CHARGE_PUMP_1,
RT5663_OSW_HP_L_MASK | RT5663_OSW_HP_R_MASK,
RT5663_OSW_HP_L_EN | RT5663_OSW_HP_R_EN);
switch (val) { switch (val) {
case 1: case 1:
case 2: case 2:
@ -2073,6 +2077,8 @@ static int rt5663_hp_event(struct snd_soc_dapm_widget *w,
snd_soc_write(codec, RT5663_ANA_BIAS_CUR_1, 0x7766); snd_soc_write(codec, RT5663_ANA_BIAS_CUR_1, 0x7766);
snd_soc_write(codec, RT5663_HP_BIAS, 0xafaa); snd_soc_write(codec, RT5663_HP_BIAS, 0xafaa);
snd_soc_write(codec, RT5663_CHARGE_PUMP_2, 0x7777); snd_soc_write(codec, RT5663_CHARGE_PUMP_2, 0x7777);
snd_soc_update_bits(codec, RT5663_STO_DRE_1, 0x8000,
0x8000);
snd_soc_update_bits(codec, RT5663_DEPOP_1, 0x3000, snd_soc_update_bits(codec, RT5663_DEPOP_1, 0x3000,
0x3000); 0x3000);
} }
@ -2105,14 +2111,19 @@ static int rt5663_charge_pump_event(struct snd_soc_dapm_widget *w,
switch (event) { switch (event) {
case SND_SOC_DAPM_PRE_PMU: case SND_SOC_DAPM_PRE_PMU:
if (rt5663->codec_ver == CODEC_VER_0) if (rt5663->codec_ver == CODEC_VER_0) {
snd_soc_update_bits(codec, RT5663_DEPOP_1, 0x003b, snd_soc_update_bits(codec, RT5663_DEPOP_1, 0x0030,
0x003b); 0x0030);
snd_soc_update_bits(codec, RT5663_DEPOP_1, 0x0003,
0x0003);
}
break; break;
case SND_SOC_DAPM_POST_PMD: case SND_SOC_DAPM_POST_PMD:
if (rt5663->codec_ver == CODEC_VER_0) if (rt5663->codec_ver == CODEC_VER_0) {
snd_soc_update_bits(codec, RT5663_DEPOP_1, 0x003b, 0); snd_soc_update_bits(codec, RT5663_DEPOP_1, 0x0003, 0);
snd_soc_update_bits(codec, RT5663_DEPOP_1, 0x0030, 0);
}
break; break;
default: default: