Skip to content

Commit

Permalink
ASoC: rt5659: Fix the lost powers for the HDA header
Browse files Browse the repository at this point in the history
The power of "LDO2", "MICBIAS1" and "Mic Det Power" were powered off after
the DAPM widgets were added, and these powers were set by the JD settings
"RT5659_JD_HDA_HEADER" in the probe function. In the codec probe function,
these powers were ignored to prevent them controlled by DAPM.

Signed-off-by: Oder Chiou <[email protected]>
Signed-off-by: Jack Yu <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
  • Loading branch information
Jack Yu authored and broonie committed May 27, 2021
1 parent 41daf6b commit 6308c44
Showing 1 changed file with 21 additions and 5 deletions.
26 changes: 21 additions & 5 deletions sound/soc/codecs/rt5659.c
Original file line number Diff line number Diff line change
Expand Up @@ -2433,13 +2433,18 @@ static int set_dmic_power(struct snd_soc_dapm_widget *w,
return 0;
}

static const struct snd_soc_dapm_widget rt5659_dapm_widgets[] = {
static const struct snd_soc_dapm_widget rt5659_particular_dapm_widgets[] = {
SND_SOC_DAPM_SUPPLY("LDO2", RT5659_PWR_ANLG_3, RT5659_PWR_LDO2_BIT, 0,
NULL, 0),
SND_SOC_DAPM_SUPPLY("PLL", RT5659_PWR_ANLG_3, RT5659_PWR_PLL_BIT, 0,
NULL, 0),
SND_SOC_DAPM_SUPPLY("MICBIAS1", RT5659_PWR_ANLG_2, RT5659_PWR_MB1_BIT,
0, NULL, 0),
SND_SOC_DAPM_SUPPLY("Mic Det Power", RT5659_PWR_VOL,
RT5659_PWR_MIC_DET_BIT, 0, NULL, 0),
};

static const struct snd_soc_dapm_widget rt5659_dapm_widgets[] = {
SND_SOC_DAPM_SUPPLY("PLL", RT5659_PWR_ANLG_3, RT5659_PWR_PLL_BIT, 0,
NULL, 0),
SND_SOC_DAPM_SUPPLY("Mono Vref", RT5659_PWR_ANLG_1,
RT5659_PWR_VREF3_BIT, 0, NULL, 0),

Expand All @@ -2464,8 +2469,6 @@ static const struct snd_soc_dapm_widget rt5659_dapm_widgets[] = {
RT5659_ADC_MONO_R_ASRC_SFT, 0, NULL, 0),

/* Input Side */
SND_SOC_DAPM_SUPPLY("MICBIAS1", RT5659_PWR_ANLG_2, RT5659_PWR_MB1_BIT,
0, NULL, 0),
SND_SOC_DAPM_SUPPLY("MICBIAS2", RT5659_PWR_ANLG_2, RT5659_PWR_MB2_BIT,
0, NULL, 0),
SND_SOC_DAPM_SUPPLY("MICBIAS3", RT5659_PWR_ANLG_2, RT5659_PWR_MB3_BIT,
Expand Down Expand Up @@ -3660,10 +3663,23 @@ static int rt5659_set_bias_level(struct snd_soc_component *component,

static int rt5659_probe(struct snd_soc_component *component)
{
struct snd_soc_dapm_context *dapm =
snd_soc_component_get_dapm(component);
struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component);

rt5659->component = component;

switch (rt5659->pdata.jd_src) {
case RT5659_JD_HDA_HEADER:
break;

default:
snd_soc_dapm_new_controls(dapm,
rt5659_particular_dapm_widgets,
ARRAY_SIZE(rt5659_particular_dapm_widgets));
break;
}

return 0;
}

Expand Down

0 comments on commit 6308c44

Please sign in to comment.