+static int nau8315_enpin_event(struct snd_soc_dapm_widget *w, + struct snd_kcontrol *kcontrol, int event) +{ + struct snd_soc_component *component = + snd_soc_dapm_to_component(w->dapm); + struct nau8315_priv *nau8315 = + snd_soc_component_get_drvdata(component);
[1]
+ if (event & SND_SOC_DAPM_POST_PMU) + nau8315->enpin_switch = 1; + else if (event & SND_SOC_DAPM_POST_PMD) + nau8315->enpin_switch = 0;
And even if this variable was useful, for symmetry should it be PRE_PMU/POST_PMD?
Yes, I agree with your opinion.
From the above description, I suppose you might want to point whether the dapm widget of EN_PIN is redundant, right? That's a reason the physical hardware pin is set to high/low in trigger function point of snd_soc_dai_ops, it always occurred after dapm event. If yes, from my current platform of verification, even if the dapm widget of EN_PIN is removed, the result of sound output is same yet. Maybe the first version, I should submit a simpler version.
The model from the Max98357a seems to come from 128f825aeab79 (' ASoC: max98357a: move control of SD_MODE to DAPM')
It doesn't seem like this additional EN_PIN is useful at the codec level but may help with machine integration.
I still don't get the POST_PMU/POST_PMD. This was changed in 04a646ff5acaa by Tzung-Bi Shih @ Google, wondering if there is an explanation?
Not pushing back, just trying to get what makes sense for amplifiers.