Re: [PATCH] ALSA: hda/hdmi: Add pins with jack detection support

From: Takashi Iwai
Date: Tue Aug 04 2020 - 05:04:03 EST


On Tue, 04 Aug 2020 09:29:25 +0200,
Kai-Heng Feng wrote:
>
> HDMI on some platforms doesn't enable audio support because its Port
> Connectivity [31:30] is set to AC_JACK_PORT_NONE:
> Node 0x05 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x00 0x00]
> Pincap 0x0b000094: OUT Detect HBR HDMI DP
> Pin Default 0x58560010: [N/A] Digital Out at Int HDMI
> Conn = Digital, Color = Unknown
> DefAssociation = 0x1, Sequence = 0x0
> Pin-ctls: 0x40: OUT
> Unsolicited: tag=00, enabled=0
> Power states: D0 D3 EPSS
> Power: setting=D0, actual=D0
> Devices: 0
> Connection: 3
> 0x02 0x03* 0x04
>
> Those pins were filtered out by commit 116dcde63806 ("ALSA: HDA: Remove
> unconnected PCM devices for Intel HDMI"). However, jacks that support
> detection won't have the issues the commit addresses.
>
> So still add the pin if it supports jack detection.
>
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx>

Which platform did show the problem?

I'm reluctant to apply this change as it would potentially break the
existing system. If we must to apply, maybe it's safer to apply it
conditionally to the limited devices.


thanks,

Takashi

> ---
> sound/pci/hda/patch_hdmi.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
> index cd46247988e4..db3a5148bd40 100644
> --- a/sound/pci/hda/patch_hdmi.c
> +++ b/sound/pci/hda/patch_hdmi.c
> @@ -1701,7 +1701,8 @@ static int hdmi_add_pin(struct hda_codec *codec, hda_nid_t pin_nid)
> * all device entries on the same pin
> */
> config = snd_hda_codec_get_pincfg(codec, pin_nid);
> - if (get_defcfg_connect(config) == AC_JACK_PORT_NONE)
> + if ((get_defcfg_connect(config) == AC_JACK_PORT_NONE) &&
> + !(caps & AC_PINCAP_PRES_DETECT))
> return 0;
>
> /*
> --
> 2.17.1
>