linux/drivers/pci/host
David Daney 9a28033753 PCI: generic: Allow multiple hosts with different map_bus() methods
The generic driver kept a global struct pci_ops ("gen_pci_ops") which it
patched with the .map_bus() method appropriate for the bus device.  This is
a problem when we have two different types of bus devices: the .map_bus()
method for the last device probed clobbers the method for previous devices.
The result is that only the last bus device probed has the correct
.map_bus(), and the others fail.

Move the struct pci_ops into the bus-specific structure and initialize a
pointer to it when the bus device is probed.

Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Will Deacon <will.deacon@arm.com>
2015-10-08 10:15:10 -05:00
..
Kconfig ARM: SoC 64-bit changes for v4.3 2015-09-01 13:29:48 -07:00
Makefile Merge branches 'pci/host-designware', 'pci/host-designware-common', 'pci/host-generic', 'pci/host-imx6', 'pci/host-iproc' and 'pci/host-xgene' into next 2015-06-16 08:19:55 -05:00
pci-dra7xx.c Merge branches 'pci/host-dra7xx', 'pci/host-imx6' and 'pci/host-spear' into next 2015-08-24 14:15:05 -05:00
pci-exynos.c PCI: designware: Wait for link to come up with consistent style 2015-06-10 13:52:59 -05:00
pci-host-generic.c PCI: generic: Allow multiple hosts with different map_bus() methods 2015-10-08 10:15:10 -05:00
pci-imx6.c PCI: imx6: Simplify a trivial if-return sequence 2015-08-20 01:31:58 -05:00
pci-keystone-dw.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-09-01 14:33:35 -07:00
pci-keystone.c PCI/keystone: Prepare irq handlers for irq argument removal 2015-07-16 23:31:37 +02:00
pci-keystone.h PCI/MSI: Rename "struct msi_chip" to "struct msi_controller" 2014-11-12 07:49:38 -07:00
pci-layerscape.c PCI: designware: Wait for link to come up with consistent style 2015-06-10 13:52:59 -05:00
pci-mvebu.c PCI: Drop references acquired by of_parse_phandle() 2015-08-20 12:02:50 -05:00
pci-rcar-gen2.c PCI: rcar: Verify that mem_res is 64K-aligned 2015-02-24 00:24:19 -06:00
pci-tegra.c PCI: Kill off set_irq_flags() usage 2015-08-11 15:17:43 -05:00
pci-versatile.c Merge branches 'pci/host-exynos', 'pci/host-iproc', 'pci/host-keystone', 'pci/host-layerscape', 'pci/host-mvebu', 'pci/host-rcar' and 'pci/host-versatile' into next 2015-04-10 08:26:54 -05:00
pci-xgene-msi.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-09-01 14:33:35 -07:00
pci-xgene.c Merge branches 'pci/enumeration' and 'pci/misc' into next 2015-08-28 15:53:08 -05:00
pcie-designware.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-09-01 14:33:35 -07:00
pcie-designware.h PCI/MSI: Rename "struct msi_chip" to "struct msi_controller" 2014-11-12 07:49:38 -07:00
pcie-iproc-bcma.c PCI: iproc: Free resource list after registration 2015-05-27 18:34:05 -05:00
pcie-iproc-platform.c PCI: iproc: Free resource list after registration 2015-05-27 18:34:05 -05:00
pcie-iproc.c PCI: iproc: enable arm64 support for iProc PCIe 2015-07-29 22:07:02 +02:00
pcie-iproc.h PCI: iproc: enable arm64 support for iProc PCIe 2015-07-29 22:07:02 +02:00
pcie-rcar.c PCI: Kill off set_irq_flags() usage 2015-08-11 15:17:43 -05:00
pcie-spear13xx.c PCI: spear: Use BUG_ON() instead of condition followed by BUG() 2015-08-20 01:31:24 -05:00
pcie-xilinx.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-09-01 14:33:35 -07:00