On Fri, Mar 24, 2023 at 09:54:41AM +0800, Zhu Ning wrote: > > There being two different GPIOs sounds like it just allows the headphone > > and speaker to be controlled separately - that seems more flexible, not > > a problem? > Yes it's called multi stream in Windows. However, extra GPIO causes > more confusion > in the driver. That might be true on Windows, however with these being representable as DAPM widgets on Linux I would be surprised if there were much burden on Linux. > + SND_SOC_DAPM_SUPPLY("Headphone Power", SND_SOC_NOPM, 0, 0, > + acp3x_es83xx_headphone_power_event, > + SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU), > SND_SOC_DAPM_SUPPLY("Speaker Power", SND_SOC_NOPM, 0, 0, > acp3x_es83xx_speaker_power_event, > SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU), Note that both of these would be much better represented as events on the actual headphone or speaker widget, these have event callbacks. This will ensure that they are sequenced after the CODEC minimising pops and clicks.