> On Aug 4, 2020, at 17:04, Takashi Iwai <tiwai@xxxxxxx> wrote: > > 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? An HP desktop. > > 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. Hmm, I find it's a bit hard to match a specific device, because the ID seems to be rather generic: Codec: Intel Kabylake HDMI Address: 2 AFG Function Id: 0x1 (unsol 0) Vendor Id: 0x8086280b Subsystem Id: 0x80860101 Revision Id: 0x100000 Should we use DMI string instead? Kai-Heng > > > 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