Christian Ehrhardt <ehrhardt <at> genua.de> writes: > > However, host bridges that are handled e.g. in arch/i386/pci/pchb.c > > can appear downstream of another bridge but use bus numbers that are > > outside of the upstream bridge's bus number range.
What I understood from the discussion, there is a possibility of kinda "multi-path" within pci discovery. Right? No being a pci guru, I did some work on azalia(4) in the past. azalia(4) also need to deal with multi-path, but for signal flow: audio codec has numerous one-to-one, one-to-many or many-to-many connected nodes (dacs, adcs, mixers) which signal should pass through. Some signal paths are dead-end, some aren't. azalia(4) uses so called "traversing" mechanism do detect right signal flow and mark dead nodes as dead. So the result of traversing is a tree-like structure (I'm simplifying here) containing right signal path. That's the principle: do traverse first, than operate. pci bus structure is also tree-like and maybe it is better to do traversing first, remove duplicated nodes and than do actual device attachments. Doing traversing may involve different bus discovery methods (bios, acpi etc). Just a raw idea.
