diff options
author | Kai Vehmanen <[email protected]> | 2023-08-02 10:01:05 -0500 |
---|---|---|
committer | Takashi Iwai <[email protected]> | 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 <[email protected]>
Tested-by: "T, Arun" <[email protected]>
Signed-off-by: Kai Vehmanen <[email protected]>
Signed-off-by: Pierre-Louis Bossart <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Takashi Iwai <[email protected]>
-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) |