On Wed, 2023-08-02 at 17:38 +0100, Mark Brown wrote: > On Wed, Aug 02, 2023 at 02:52:57PM +0000, Jiaxin Yu (俞家鑫) wrote: > > On Mon, 2023-07-31 at 12:50 +0100, Mark Brown wrote: > > > On Mon, Jul 31, 2023 at 02:08:02AM +0800, Jiaxin Yu wrote: > > > > Use SND_SOC_DAPM_LINE instead of SND_SOC_DAPM_OUTPUT to trigger > > > > DAPM events to hdmi-codec when userspace control the DPAM pin. > > > Why? > > I have defined an SOC_DAPM_PIN_SWITCH that named as "HDMI1", if I > > use > > SND_SOC_DAPM_OUTPUT, it can't be controlled by HDMI1's PIN_SWITCH. > > ... > > > 2762 if (w->dapm->card->fully_routed) > > 2763 return; > > 2764 ep = SND_SOC_DAPM_EP_SINK; > > 2765 snd_soc_dapm_widget_for_each_sink_path(w, p) { > > 2766 if (p->sink->id == snd_soc_dapm_spk || > > 2767 p->sink->id == snd_soc_dapm_hp > > || > > 2768 p->sink->id == > > snd_soc_dapm_line > > > > > > > > 2769 p->sink->id == > > snd_soc_dapm_input) > > { > > 2770 ep = 0; > > The expectation here is that you'll connect the output to a widget > that > corresponds to the physical output on your board and put the pin > switch > on that, ideally with a label that corresponds to case markings or > what > the physical output is called on the board. Dear brown, I agree with you, in fact the speaker is indeed doing this way. But about the hdmi that on the board, I did not find a defination link snd_soc_dapm_hdmi, so I use snd_soc_dapm_line to replace. The purpose is to control it link speaker. Or what do you suggest I should do? Thank you very much.