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>
        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)