* [PATCH v3] ALSA: hda/hdmi: Add quirk to force connectivity
@ 2020-08-04 15:58 Kai-Heng Feng
2020-08-04 18:54 ` Takashi Iwai
0 siblings, 1 reply; 2+ messages in thread
From: Kai-Heng Feng @ 2020-08-04 15:58 UTC (permalink / raw)
To: tiwai
Cc: Kai-Heng Feng, Jaroslav Kysela, Kai Vehmanen, Nikhil Mahale,
Pierre-Louis Bossart, Aaron Plattner, moderated list:SOUND,
open list
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
For now, use a quirk to force connectivity based on SSID. If there are
more platforms affected by the same issue, we can eye for a more generic
solution.
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
---
v3:
- Move the flag into hdmi_spec.
v2:
- Use a quirk list instead.
sound/pci/hda/patch_hdmi.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index cd46247988e4..b62cd3abb827 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -160,6 +160,7 @@ struct hdmi_spec {
bool use_acomp_notifier; /* use eld_notify callback for hotplug */
bool acomp_registered; /* audio component registered in this driver */
+ bool force_connect; /* force connectivity */
struct drm_audio_component_audio_ops drm_audio_ops;
int (*port2pin)(struct hda_codec *, int); /* reverse port/pin mapping */
@@ -1701,7 +1702,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 &&
+ !spec->force_connect)
return 0;
/*
@@ -1803,11 +1805,18 @@ static int hdmi_add_cvt(struct hda_codec *codec, hda_nid_t cvt_nid)
return 0;
}
+static const struct snd_pci_quirk force_connect_list[] = {
+ SND_PCI_QUIRK(0x103c, 0x871a, "HP", 1),
+ {}
+};
+
static int hdmi_parse_codec(struct hda_codec *codec)
{
+ struct hdmi_spec *spec = codec->spec;
hda_nid_t start_nid;
unsigned int caps;
int i, nodes;
+ const struct snd_pci_quirk *q;
nodes = snd_hda_get_sub_nodes(codec, codec->core.afg, &start_nid);
if (!start_nid || nodes < 0) {
@@ -1815,6 +1824,11 @@ static int hdmi_parse_codec(struct hda_codec *codec)
return -EINVAL;
}
+ q = snd_pci_quirk_lookup(codec->bus->pci, force_connect_list);
+
+ if (q && q->value)
+ spec->force_connect = true;
+
/*
* hdmi_add_pin() assumes total amount of converters to
* be known, so first discover all converters
--
2.17.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v3] ALSA: hda/hdmi: Add quirk to force connectivity
2020-08-04 15:58 [PATCH v3] ALSA: hda/hdmi: Add quirk to force connectivity Kai-Heng Feng
@ 2020-08-04 18:54 ` Takashi Iwai
0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2020-08-04 18:54 UTC (permalink / raw)
To: Kai-Heng Feng
Cc: tiwai, Jaroslav Kysela, Kai Vehmanen, Nikhil Mahale,
Pierre-Louis Bossart, Aaron Plattner, moderated list:SOUND,
open list
On Tue, 04 Aug 2020 17:58:34 +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
>
> For now, use a quirk to force connectivity based on SSID. If there are
> more platforms affected by the same issue, we can eye for a more generic
> solution.
>
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> ---
> v3:
> - Move the flag into hdmi_spec.
> v2:
> - Use a quirk list instead.
Applied now. Thanks!
Takashi
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-08-04 18:55 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-04 15:58 [PATCH v3] ALSA: hda/hdmi: Add quirk to force connectivity Kai-Heng Feng
2020-08-04 18:54 ` Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).