![Benjamin Herrenschmidt](/assets/img/avatar_default.png)
powerpc has two different ways of matching PCI devices to their corresponding OF node (if any) for historical reasons. The ppc64 one does a scan looking for matching bus/dev/fn, while the ppc32 one does a scan looking only for matching dev/fn on each level in order to be agnostic to busses being renumbered (which Linux does on some platforms). This removes both and instead moves the matching code to the PCI core itself. It's the most logical place to do it: when a pci_dev is created, we know the parent and thus can do a single level scan for the matching device_node (if any). The benefit is that all archs now get the matching for free. There's one hook the arch might want to provide to match a PHB bus to its device node. A default weak implementation is provided that looks for the parent device device node, but it's not entirely reliable on powerpc for various reasons so powerpc provides its own. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Acked-by: Michal Simek <monstr@monstr.eu> Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
76 lines
1.9 KiB
Makefile
76 lines
1.9 KiB
Makefile
#
|
|
# Makefile for the PCI bus specific drivers.
|
|
#
|
|
|
|
obj-y += access.o bus.o probe.o remove.o pci.o \
|
|
pci-driver.o search.o pci-sysfs.o rom.o setup-res.o \
|
|
irq.o vpd.o
|
|
obj-$(CONFIG_PROC_FS) += proc.o
|
|
obj-$(CONFIG_SYSFS) += slot.o
|
|
|
|
obj-$(CONFIG_PCI_QUIRKS) += quirks.o
|
|
|
|
# Build PCI Express stuff if needed
|
|
obj-$(CONFIG_PCIEPORTBUS) += pcie/
|
|
|
|
obj-$(CONFIG_PCI_IOAPIC) += ioapic.o
|
|
|
|
obj-$(CONFIG_HOTPLUG) += hotplug.o
|
|
|
|
# Build the PCI Hotplug drivers if we were asked to
|
|
obj-$(CONFIG_HOTPLUG_PCI) += hotplug/
|
|
ifdef CONFIG_HOTPLUG_PCI
|
|
obj-y += hotplug-pci.o
|
|
endif
|
|
|
|
# Build the PCI MSI interrupt support
|
|
obj-$(CONFIG_PCI_MSI) += msi.o
|
|
|
|
# Build the Hypertransport interrupt support
|
|
obj-$(CONFIG_HT_IRQ) += htirq.o
|
|
|
|
# Build Intel IOMMU support
|
|
obj-$(CONFIG_DMAR) += dmar.o iova.o intel-iommu.o
|
|
|
|
obj-$(CONFIG_INTR_REMAP) += dmar.o intr_remapping.o
|
|
|
|
obj-$(CONFIG_PCI_IOV) += iov.o
|
|
|
|
#
|
|
# Some architectures use the generic PCI setup functions
|
|
#
|
|
obj-$(CONFIG_X86) += setup-bus.o
|
|
obj-$(CONFIG_ALPHA) += setup-bus.o setup-irq.o
|
|
obj-$(CONFIG_ARM) += setup-bus.o setup-irq.o
|
|
obj-$(CONFIG_UNICORE32) += setup-bus.o setup-irq.o
|
|
obj-$(CONFIG_PARISC) += setup-bus.o
|
|
obj-$(CONFIG_SUPERH) += setup-bus.o setup-irq.o
|
|
obj-$(CONFIG_PPC) += setup-bus.o
|
|
obj-$(CONFIG_MIPS) += setup-bus.o setup-irq.o
|
|
obj-$(CONFIG_X86_VISWS) += setup-irq.o
|
|
obj-$(CONFIG_MN10300) += setup-bus.o
|
|
obj-$(CONFIG_MICROBLAZE) += setup-bus.o
|
|
obj-$(CONFIG_TILE) += setup-bus.o setup-irq.o
|
|
|
|
#
|
|
# ACPI Related PCI FW Functions
|
|
# ACPI _DSM provided firmware instance and string name
|
|
#
|
|
obj-$(CONFIG_ACPI) += pci-acpi.o
|
|
|
|
# SMBIOS provided firmware instance and labels
|
|
obj-$(CONFIG_PCI_LABEL) += pci-label.o
|
|
|
|
# Cardbus & CompactPCI use setup-bus
|
|
obj-$(CONFIG_HOTPLUG) += setup-bus.o
|
|
|
|
obj-$(CONFIG_PCI_SYSCALL) += syscall.o
|
|
|
|
obj-$(CONFIG_PCI_STUB) += pci-stub.o
|
|
|
|
obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += xen-pcifront.o
|
|
|
|
obj-$(CONFIG_OF) += of.o
|
|
|
|
ccflags-$(CONFIG_PCI_DEBUG) := -DDEBUG
|