Skip to content

Commit

Permalink
ASoC: ak4642: fixup HeadPhone L/R dapm settings
Browse files Browse the repository at this point in the history
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: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Kuninori Morimoto authored and Mark Brown committed Feb 21, 2012
1 parent 31794bc commit e555cf3
Showing 1 changed file with 16 additions and 15 deletions.
31 changes: 16 additions & 15 deletions sound/soc/codecs/ak4642.c
Original file line number Diff line number Diff line change
Expand Up @@ -146,13 +146,10 @@ static const struct snd_kcontrol_new ak4642_snd_controls[] = {

SOC_DOUBLE_R_TLV("Digital Playback Volume", L_DVC, R_DVC,
0, 0xFF, 1, out_tlv),

SOC_SINGLE("Headphone Switch", PW_MGMT2, 6, 1, 0),
};

static const struct snd_kcontrol_new ak4642_hpout_mixer_controls[] = {
SOC_DAPM_SINGLE("DACH", MD_CTL4, 0, 1, 0),
};
static const struct snd_kcontrol_new ak4642_headphone_control =
SOC_DAPM_SINGLE("Switch", PW_MGMT2, 6, 1, 0);

static const struct snd_kcontrol_new ak4642_lout_mixer_controls[] = {
SOC_DAPM_SINGLE("DACL", SG_SL1, 4, 1, 0),
Expand All @@ -165,13 +162,12 @@ static const struct snd_soc_dapm_widget ak4642_dapm_widgets[] = {
SND_SOC_DAPM_OUTPUT("HPOUTR"),
SND_SOC_DAPM_OUTPUT("LINEOUT"),

SND_SOC_DAPM_MIXER("HPOUTL Mixer", PW_MGMT2, 5, 0,
&ak4642_hpout_mixer_controls[0],
ARRAY_SIZE(ak4642_hpout_mixer_controls)),
SND_SOC_DAPM_PGA("HPL Out", PW_MGMT2, 5, 0, NULL, 0),
SND_SOC_DAPM_PGA("HPR Out", PW_MGMT2, 4, 0, NULL, 0),
SND_SOC_DAPM_SWITCH("Headphone Enable", SND_SOC_NOPM, 0, 0,
&ak4642_headphone_control),

SND_SOC_DAPM_MIXER("HPOUTR Mixer", PW_MGMT2, 4, 0,
&ak4642_hpout_mixer_controls[0],
ARRAY_SIZE(ak4642_hpout_mixer_controls)),
SND_SOC_DAPM_PGA("DACH", MD_CTL4, 0, 0, NULL, 0),

SND_SOC_DAPM_MIXER("LINEOUT Mixer", PW_MGMT1, 3, 0,
&ak4642_lout_mixer_controls[0],
Expand All @@ -184,12 +180,17 @@ static const struct snd_soc_dapm_widget ak4642_dapm_widgets[] = {
static const struct snd_soc_dapm_route ak4642_intercon[] = {

/* Outputs */
{"HPOUTL", NULL, "HPOUTL Mixer"},
{"HPOUTR", NULL, "HPOUTR Mixer"},
{"HPOUTL", NULL, "HPL Out"},
{"HPOUTR", NULL, "HPR Out"},
{"LINEOUT", NULL, "LINEOUT Mixer"},

{"HPOUTL Mixer", "DACH", "DAC"},
{"HPOUTR Mixer", "DACH", "DAC"},
{"HPL Out", NULL, "Headphone Enable"},
{"HPR Out", NULL, "Headphone Enable"},

{"Headphone Enable", "Switch", "DACH"},

{"DACH", NULL, "DAC"},

{"LINEOUT Mixer", "DACL", "DAC"},
};

Expand Down

0 comments on commit e555cf3

Please sign in to comment.