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 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fixup-fuloong2e.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fixup-ip32.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fixup-jmr3927.c
fixup-lantiq.c MIPS: Change my email address 2016-05-13 14:02:18 +02:00
fixup-lemote2f.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
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 mips: mark const init data with __initconst instead of __initdata 2012-07-19 11:23:43 +02:00
fixup-pmcmsp.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fixup-rbtx4927.c
fixup-rbtx4938.c
fixup-rc32434.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
fixup-sb1250.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
fixup-sni.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fixup-tb0219.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fixup-tb0226.c
fixup-tb0287.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
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 mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
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 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
ops-lantiq.c MIPS: Change my email address 2016-05-13 14:02:18 +02:00
ops-loongson2.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
ops-loongson3.c MIPS: Loongson 3: Add HT-linked PCI support 2014-03-31 18:17:12 +02:00
ops-mace.c PCI: Remove unnecessary #includes of <asm/pci.h> 2015-06-08 07:56:09 -05:00
ops-msc.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
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 mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
ops-sni.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
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 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
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 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-bcm63xx.c MIPS: BCM63XX: add support for BCM3368 Cable Modem 2013-07-01 15:10:53 +02:00
pci-bcm63xx.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-bcm1480.c MIPS: Add struct pci_ops member names to initialization 2015-01-16 15:04:38 +01:00
pci-bcm1480ht.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-emma2rh.c
pci-generic.c MIPS: PCI: Support generic drivers 2016-10-06 18:00:52 +02:00
pci-ip27.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
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 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
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 MIPS: Malta: Make use of generic CM support 2014-03-26 23:09:06 +01:00
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 TTY:vt: convert remain take_over_console's users to do_take_over_console 2013-05-20 22:29:27 -07:00
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 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-vr41xx.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-xlp.c MIPS: PCI: Netlogic XLP9XX support 2014-01-24 22:39:49 +01:00
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