History log of /fuchsia/zircon/kernel/dev/pcie/pcie_root.cpp
Revision Date Author Comments
# c4082b77 22-Nov-2016 John Grossman <johngro@google.com>

[pcie] Make IRQ swizzling a PcieRoot property.

Move Legacy IRQ swizzling behavior out of the platform interface class
and make it a property of a PcieRoot instead. The behavior is
not a property of the system as a whole, it is a property of the root
being traversed.

Change-Id: I3b8241be98582d006cb3570119ed4174201562f2


# e8881e2e 03-Nov-2016 John Grossman <johngro@google.com>

[pcie] Refactor to add PcieRoot

Refactor PcieBridge so we can model PCIe roots as objects which manage a bus and
have children, but are not devices. Specifically, there is now a
PcieUpstreamNode class which manages children, and is a base class for PcieRoot
and PcieDevice. "Having children" is implemented by UpstreamNode, "Being a
device with children" is implemented by PcieBridge, and "Being a non-device with
children" is implemented by PcieRoot.

Next steps
++ Get rid of the root_complex_ singleton member of the bus driver. Replace it
with a collection roots.
++ Move the management of legacy IRQ swizzling out of the PciePlatform class and
into the PcieRoot class. Swizzle behavior is platform specific, but also
specific to the traversal of a specific root. When the platform adds roots
to the driver, the swizzle behavior of that specific root should be provided.

Change-Id: I62118429632eb30a827f50b49df737eda0f4f693