diff options
author | Kai Vehmanen <kai.vehmanen@linux.intel.com> | 2023-08-02 10:01:05 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2023-08-04 12:53:53 +0200 |
commit | 3f8c530fc458142e0db0185f18153d85c4359203 (patch) | |
tree | e83d6e424d12e5b6dad376331315ca24f329c5f7 | |
parent | d2852b8c045ebd31d753b06f2810df5be30ed56a (diff) |
ALSA: hda/i915: extend connectivity check to cover Intel ARL
Expand the HDA/I915 connectivity check to correctly handle
the PCI topology used in some Intel Arrow Lake products.
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Tested-by: "T, Arun" <arun.t@intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20230802150105.24604-6-pierre-louis.bossart@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/hda/hdac_i915.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sound/hda/hdac_i915.c b/sound/hda/hdac_i915.c index 2a451ff4fe6a..b428537f284c 100644 --- a/sound/hda/hdac_i915.c +++ b/sound/hda/hdac_i915.c @@ -75,14 +75,20 @@ static bool connectivity_check(struct pci_dev *i915, struct pci_dev *hdac) if (bus_a == bus_b) return true; - /* - * on i915 discrete GPUs with embedded HDA audio, the two - * devices are connected via 2nd level PCI bridge - */ bus_a = bus_a->parent; bus_b = bus_b->parent; + + /* connected via parent bus (may be NULL!) */ + if (bus_a == bus_b) + return true; + if (!bus_a || !bus_b) return false; + + /* + * on i915 discrete GPUs with embedded HDA audio, the two + * devices are connected via 2nd level PCI bridge + */ bus_a = bus_a->parent; bus_b = bus_b->parent; if (bus_a && bus_a == bus_b) |