Commit e555cf36 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown

ASoC: ak4642: fixup HeadPhone L/R dapm settings

Current ak4642 driver had wrong dapm settings for headphone L/R.
If you select headphone L, and select R after that,
headphone L setting was removed by R settings.

This patch fixes it up.
It provides just "Headphone Enable" to user side
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 31794bc3
...@@ -146,13 +146,10 @@ static const struct snd_kcontrol_new ak4642_snd_controls[] = { ...@@ -146,13 +146,10 @@ static const struct snd_kcontrol_new ak4642_snd_controls[] = {
SOC_DOUBLE_R_TLV("Digital Playback Volume", L_DVC, R_DVC, SOC_DOUBLE_R_TLV("Digital Playback Volume", L_DVC, R_DVC,
0, 0xFF, 1, out_tlv), 0, 0xFF, 1, out_tlv),
SOC_SINGLE("Headphone Switch", PW_MGMT2, 6, 1, 0),
}; };
static const struct snd_kcontrol_new ak4642_hpout_mixer_controls[] = { static const struct snd_kcontrol_new ak4642_headphone_control =
SOC_DAPM_SINGLE("DACH", MD_CTL4, 0, 1, 0), SOC_DAPM_SINGLE("Switch", PW_MGMT2, 6, 1, 0);
};
static const struct snd_kcontrol_new ak4642_lout_mixer_controls[] = { static const struct snd_kcontrol_new ak4642_lout_mixer_controls[] = {
SOC_DAPM_SINGLE("DACL", SG_SL1, 4, 1, 0), SOC_DAPM_SINGLE("DACL", SG_SL1, 4, 1, 0),
...@@ -165,13 +162,12 @@ static const struct snd_soc_dapm_widget ak4642_dapm_widgets[] = { ...@@ -165,13 +162,12 @@ static const struct snd_soc_dapm_widget ak4642_dapm_widgets[] = {
SND_SOC_DAPM_OUTPUT("HPOUTR"), SND_SOC_DAPM_OUTPUT("HPOUTR"),
SND_SOC_DAPM_OUTPUT("LINEOUT"), SND_SOC_DAPM_OUTPUT("LINEOUT"),
SND_SOC_DAPM_MIXER("HPOUTL Mixer", PW_MGMT2, 5, 0, SND_SOC_DAPM_PGA("HPL Out", PW_MGMT2, 5, 0, NULL, 0),
&ak4642_hpout_mixer_controls[0], SND_SOC_DAPM_PGA("HPR Out", PW_MGMT2, 4, 0, NULL, 0),
ARRAY_SIZE(ak4642_hpout_mixer_controls)), SND_SOC_DAPM_SWITCH("Headphone Enable", SND_SOC_NOPM, 0, 0,
&ak4642_headphone_control),
SND_SOC_DAPM_MIXER("HPOUTR Mixer", PW_MGMT2, 4, 0, SND_SOC_DAPM_PGA("DACH", MD_CTL4, 0, 0, NULL, 0),
&ak4642_hpout_mixer_controls[0],
ARRAY_SIZE(ak4642_hpout_mixer_controls)),
SND_SOC_DAPM_MIXER("LINEOUT Mixer", PW_MGMT1, 3, 0, SND_SOC_DAPM_MIXER("LINEOUT Mixer", PW_MGMT1, 3, 0,
&ak4642_lout_mixer_controls[0], &ak4642_lout_mixer_controls[0],
...@@ -184,12 +180,17 @@ static const struct snd_soc_dapm_widget ak4642_dapm_widgets[] = { ...@@ -184,12 +180,17 @@ static const struct snd_soc_dapm_widget ak4642_dapm_widgets[] = {
static const struct snd_soc_dapm_route ak4642_intercon[] = { static const struct snd_soc_dapm_route ak4642_intercon[] = {
/* Outputs */ /* Outputs */
{"HPOUTL", NULL, "HPOUTL Mixer"}, {"HPOUTL", NULL, "HPL Out"},
{"HPOUTR", NULL, "HPOUTR Mixer"}, {"HPOUTR", NULL, "HPR Out"},
{"LINEOUT", NULL, "LINEOUT Mixer"}, {"LINEOUT", NULL, "LINEOUT Mixer"},
{"HPOUTL Mixer", "DACH", "DAC"}, {"HPL Out", NULL, "Headphone Enable"},
{"HPOUTR Mixer", "DACH", "DAC"}, {"HPR Out", NULL, "Headphone Enable"},
{"Headphone Enable", "Switch", "DACH"},
{"DACH", NULL, "DAC"},
{"LINEOUT Mixer", "DACL", "DAC"}, {"LINEOUT Mixer", "DACL", "DAC"},
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment