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.