From: Sasha Levin <sashal@kernel.org> To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Kai-Heng Feng <kai.heng.feng@canonical.com>, Takashi Iwai <tiwai@suse.de>, Sasha Levin <sashal@kernel.org>, alsa-devel@alsa-project.org Subject: [PATCH AUTOSEL 5.8 01/62] ALSA: hda/hdmi: Add quirk to force connectivity Date: Fri, 21 Aug 2020 12:13:22 -0400 [thread overview] Message-ID: <20200821161423.347071-1-sashal@kernel.org> (raw) From: Kai-Heng Feng <kai.heng.feng@canonical.com> [ Upstream commit cd72c317a0a11f64225b9a3f1fe503bb8c7327b5 ] 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> Link: https://lore.kernel.org/r/20200804155836.16252-1-kai.heng.feng@canonical.com Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Sasha Levin <sashal@kernel.org> --- 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 cd46247988e4d..b62cd3abb8273 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.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Sasha Levin <sashal@kernel.org> To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Takashi Iwai <tiwai@suse.de>, Sasha Levin <sashal@kernel.org>, alsa-devel@alsa-project.org, Kai-Heng Feng <kai.heng.feng@canonical.com> Subject: [PATCH AUTOSEL 5.8 01/62] ALSA: hda/hdmi: Add quirk to force connectivity Date: Fri, 21 Aug 2020 12:13:22 -0400 [thread overview] Message-ID: <20200821161423.347071-1-sashal@kernel.org> (raw) From: Kai-Heng Feng <kai.heng.feng@canonical.com> [ Upstream commit cd72c317a0a11f64225b9a3f1fe503bb8c7327b5 ] 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> Link: https://lore.kernel.org/r/20200804155836.16252-1-kai.heng.feng@canonical.com Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Sasha Levin <sashal@kernel.org> --- 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 cd46247988e4d..b62cd3abb8273 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.25.1
next reply other threads:[~2020-08-21 16:15 UTC|newest] Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-08-21 16:13 Sasha Levin [this message] 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 01/62] ALSA: hda/hdmi: Add quirk to force connectivity Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 02/62] ALSA: pci: delete repeated words in comments Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 03/62] ALSA: hda/realtek: Fix pin default on Intel NUC 8 Rugged Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 04/62] ALSA: hda/hdmi: Use force connectivity quirk on another HP desktop Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 05/62] drm/amdgpu: fix RAS memory leak in error case Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 06/62] EDAC/mc: Call edac_inc_ue_error() before panic Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 07/62] ASoC: img: Fix a reference count leak in img_i2s_in_set_fmt Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 08/62] ASoC: img-parallel-out: Fix a reference count leak Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 09/62] ASoC: tegra: Fix reference count leaks Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 10/62] mfd: intel-lpss: Add Intel Emmitsburg PCH PCI IDs Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 11/62] arm64: dts: qcom: msm8916: Pull down PDM GPIOs during sleep Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 12/62] powerpc/xive: Ignore kmemleak false positives Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 13/62] media: pci: ttpci: av7110: fix possible buffer overflow caused by bad DMA value in debiirq() Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 14/62] gcc-plugins/stackleak: Don't instrument itself Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 15/62] blktrace: ensure our debugfs dir exists Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 16/62] staging: rts5208: fix memleaks on error handling paths in probe Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 17/62] scsi: target: tcmu: Fix crash on ARM during cmd completion Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 18/62] mfd: intel-lpss: Add Intel Tiger Lake PCH-H PCI IDs Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 19/62] iommu/iova: Don't BUG on invalid PFNs Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 20/62] platform/chrome: cros_ec_sensorhub: Fix EC timestamp overflow Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 21/62] drm/amdkfd: Fix reference count leaks Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 22/62] drm/radeon: fix multiple reference count leak Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 23/62] drm/amdgpu: fix ref count leak in amdgpu_driver_open_kms Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 24/62] drm/amd/display: fix ref count leak in amdgpu_drm_ioctl Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 25/62] drm/amdgpu: fix ref count leak in amdgpu_display_crtc_set_config Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 26/62] drm/amdgpu/display: fix ref count leak when pm_runtime_get_sync fails Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 27/62] drm/amdgpu/fence: " Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 28/62] drm/amdkfd: " Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 29/62] drm/amdgpu/pm: " Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 30/62] scsi: lpfc: Fix shost refcount mismatch when deleting vport Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 31/62] xfs: Don't allow logging of XFS_ISTALE inodes Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 32/62] scsi: target: Fix xcopy sess release leak Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 33/62] selftests/powerpc: Purge extra count_pmc() calls of ebb selftests Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 34/62] f2fs: remove write attribute of main_blkaddr sysfs node Sasha Levin 2020-08-21 16:13 ` [f2fs-dev] " Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 35/62] f2fs: fix error path in do_recover_data() Sasha Levin 2020-08-21 16:13 ` [f2fs-dev] " Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 36/62] MIPS: KVM: Limit Trap-and-Emulate to MIPS32R2 only Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 37/62] omapfb: fix multiple reference count leaks due to pm_runtime_get_sync Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` Sasha Levin 2020-08-21 16:13 ` [PATCH AUTOSEL 5.8 38/62] PCI: Fix pci_create_slot() reference count leak Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 39/62] ARM: dts: ls1021a: output PPS signal on FIPER2 Sasha Levin 2020-08-21 16:14 ` Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 40/62] rtlwifi: rtl8192cu: Prevent leaking urb Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 41/62] mips/vdso: Fix resource leaks in genvdso.c Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 42/62] ALSA: hda: Add support for Loongson 7A1000 controller Sasha Levin 2020-08-21 16:14 ` Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 43/62] gpu: host1x: Put gather's BO on pinning error Sasha Levin 2020-08-21 16:14 ` Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 44/62] cec-api: prevent leaking memory through hole in structure Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 45/62] ASoC: Intel: sof_sdw_rt711: remove properties in card remove Sasha Levin 2020-08-21 16:14 ` Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 46/62] HID: quirks: add NOGET quirk for Logitech GROUP Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 47/62] f2fs: fix use-after-free issue Sasha Levin 2020-08-21 16:14 ` [f2fs-dev] " Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 48/62] drm/nouveau/drm/noveau: fix reference count leak in nouveau_fbcon_open Sasha Levin 2020-08-21 16:14 ` Sasha Levin 2020-08-21 16:14 ` Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 49/62] drm/nouveau: fix reference count leak in nv50_disp_atomic_commit Sasha Levin 2020-08-21 16:14 ` Sasha Levin 2020-08-21 16:14 ` Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 50/62] drm/nouveau: Fix reference count leak in nouveau_connector_detect Sasha Levin 2020-08-21 16:14 ` Sasha Levin 2020-08-21 16:14 ` Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 51/62] locking/lockdep: Fix overflow in presentation of average lock-time Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 52/62] btrfs: file: reserve qgroup space after the hole punch range is locked Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 53/62] btrfs: make btrfs_qgroup_check_reserved_leak take btrfs_inode Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 54/62] scsi: iscsi: Do not put host in iscsi_set_flashnode_param() Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 55/62] RDMA/efa: Add EFA 0xefa1 PCI ID Sasha Levin 2020-08-21 19:40 ` Jason Gunthorpe 2020-08-21 19:53 ` Sasha Levin 2020-08-21 20:19 ` Jason Gunthorpe 2020-08-21 20:34 ` Sasha Levin 2020-08-23 6:43 ` Gal Pressman 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 56/62] netfilter: nf_tables: report EEXIST on overlaps Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 57/62] ceph: fix potential mdsc use-after-free crash Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 58/62] ceph: do not access the kiocb after aio requests Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 59/62] scsi: fcoe: Memory leak fix in fcoe_sysfs_fcf_del() Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 60/62] i2c: i801: Add support for Intel Tiger Lake PCH-H Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 61/62] EDAC/ie31200: Fallback if host bridge device is already initialized Sasha Levin 2020-08-21 16:14 ` [PATCH AUTOSEL 5.8 62/62] hugetlbfs: prevent filesystem stacking of hugetlbfs Sasha Levin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200821161423.347071-1-sashal@kernel.org \ --to=sashal@kernel.org \ --cc=alsa-devel@alsa-project.org \ --cc=kai.heng.feng@canonical.com \ --cc=linux-kernel@vger.kernel.org \ --cc=stable@vger.kernel.org \ --cc=tiwai@suse.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.