linux/arch/mips/pci
Lorenzo Pieralisi 04c81c7293 MIPS: PCI: Replace pci_fixup_irqs() call with host bridge IRQ mapping hooks
The pci_fixup_irqs() function allocates IRQs for all PCI devices present in
a system; those PCI devices possibly belong to different PCI bus trees (and
possibly rooted at different host bridges) and may well be enabled (ie
probed and bound to a driver) by the time pci_fixup_irqs() is called when
probing a given host bridge driver.

Furthermore, current kernel code relying on pci_fixup_irqs() to assign
legacy PCI IRQs to devices does not work at all for hotplugged devices in
that the code carrying out the IRQ fixup is called at host bridge driver
probe time, which just cannot take into account devices hotplugged after
the system has booted.

The introduction of map/swizzle function hooks in struct pci_host_bridge
allows us to define per-bridge map/swizzle functions, that can be used at
device probe time in PCI core code to allocate IRQs for a given device
(through pci_assign_irq()).

Convert PCI host bridge initialization code to the
pci_scan_root_bus_bridge() API (that allows to pass a struct
pci_host_bridge with initialized map/swizzle pointers) and remove the
pci_fixup_irqs() call from arch code.

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@imgtec.com>
2017-08-03 16:28:51 -05:00
..
fixup-bcm63xx.c
fixup-capcella.c
fixup-cobalt.c PCI: Remove unnecessary #includes of <asm/pci.h> 2015-06-08 07:56:09 -05:00
fixup-emma2rh.c
fixup-fuloong2e.c
fixup-ip32.c
fixup-jmr3927.c
fixup-lantiq.c MIPS: Change my email address 2016-05-13 14:02:18 +02:00
fixup-lemote2f.c
fixup-loongson3.c MIPS: Loongson 3: Keep CPU physical (not virtual) addresses in shadow ROM resource 2016-03-12 06:00:29 -06:00
fixup-malta.c MIPS: Malta: Let PIIX4 respond to PCI special cycles 2014-05-30 21:01:09 +02:00
fixup-mpc30x.c
fixup-pmcmsp.c
fixup-rbtx4927.c
fixup-rbtx4938.c
fixup-rc32434.c
fixup-sb1250.c
fixup-sni.c
fixup-tb0219.c
fixup-tb0226.c
fixup-tb0287.c
Makefile MIPS: PCI: Support generic drivers 2016-10-06 18:00:52 +02:00
msi-octeon.c MIPS/PCI: Use for_pci_msi_entry() to access MSI device list 2015-07-22 18:37:42 +02:00
msi-xlp.c MIPS: Netlogic: Use chip_data for irq_chip methods 2015-09-03 12:08:03 +02:00
ops-bcm63xx.c MIPS: Remove useless parentheses 2014-11-24 07:44:49 +01:00
ops-bonito64.c
ops-bridge.c MIPS: IP27: Fix typo 2016-05-28 12:35:07 +02:00
ops-emma2rh.c MIPS: ops-emma2rh: Drop nonsensical db_assert 2015-08-26 15:23:35 +02:00
ops-gt64xxx_pci0.c
ops-lantiq.c MIPS: Change my email address 2016-05-13 14:02:18 +02:00
ops-loongson2.c
ops-loongson3.c
ops-mace.c PCI: Remove unnecessary #includes of <asm/pci.h> 2015-06-08 07:56:09 -05:00
ops-msc.c
ops-nile4.c MIPS: NILE4: Remove odd locking in PCI config space access code 2014-11-24 07:44:49 +01:00
ops-pmcmsp.c MIPS: MSP71xx: remove odd locking in PCI config space access code 2014-11-24 07:44:50 +01:00
ops-rc32434.c
ops-sni.c
ops-tx3927.c mips: Update the email address of Geert Uytterhoeven 2014-06-02 16:34:41 +02:00
ops-tx4927.c MIPS: TXx9: Delete an unused variable in tx4927_pcibios_setup 2014-07-30 15:58:39 +02:00
ops-vr41xx.c
pci-alchemy.c MIPS: Sanitise coherentio semantics 2016-10-06 18:01:28 +02:00
pci-ar71xx.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-ar724x.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-ar2315.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
pci-bcm47xx.c
pci-bcm63xx.c
pci-bcm63xx.h
pci-bcm1480.c MIPS: Add struct pci_ops member names to initialization 2015-01-16 15:04:38 +01:00
pci-bcm1480ht.c
pci-emma2rh.c
pci-generic.c MIPS: PCI: Support generic drivers 2016-10-06 18:00:52 +02:00
pci-ip27.c
pci-ip32.c MIPS: make PCI_DMA_BUS_IS_PHYS=1 constant 2016-05-13 14:02:17 +02:00
pci-lantiq.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-lantiq.h MIPS: Change my email address 2016-05-13 14:02:18 +02:00
pci-lasat.c
pci-legacy.c MIPS: PCI: Replace pci_fixup_irqs() call with host bridge IRQ mapping hooks 2017-08-03 16:28:51 -05:00
pci-malta.c
pci-mt7620.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-octeon.c treewide: Move dma_ops from struct dev_archdata into struct device 2017-01-24 12:23:35 -05:00
pci-rc32434.c MIPS: RC32434: fix broken PCI resource initialization 2014-05-26 09:02:06 +02:00
pci-rt2880.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-rt3883.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-sb1250.c
pci-tx4927.c MIPS: TXx9: Modernize printing of kernel messages 2017-01-03 16:34:32 +01:00
pci-tx4938.c MIPS: TXx9: Modernize printing of kernel messages 2017-01-03 16:34:32 +01:00
pci-tx4939.c MIPS: TXx9: Modernize printing of kernel messages 2017-01-03 16:34:32 +01:00
pci-virtio-guest.c MIPS: paravirt: Add pci controller for virtio 2014-06-02 12:34:20 +02:00
pci-vr41xx.c
pci-vr41xx.h
pci-xlp.c
pci-xlr.c PCI/MSI: Rename write_msi_msg() to pci_write_msi_msg() 2014-11-23 13:01:45 +01:00
pci.c MIPS: PCI: Use generic pci_mmap_resource_range() 2017-04-20 08:47:47 -05:00
pcie-octeon.c MIPS: Octeon: Remove unused SLI types and macros. 2017-04-10 11:56:06 +02:00