linux/drivers/pci/host
Thierry Reding b4d18d71ec PCI: tegra: Implement ->{add,remove}_bus() callbacks
The configuration space mapping on Tegra is somewhat special, and in order
to avoid wasting virtual address space the configuration space for each bus
needs to be stitched together from several blocks which form a single
continuous virtual address range for accessors.

Currently the configuration space is mapped upon the first access to one of
its registers.  However, the mapping operation may sleep under certain
circumstances, so doing it from the configuration space accessors (they are
protected by a spin lock) will trigger a warning.

To avoid the warning, use the ->add_bus() callback to perform the mapping
at enumeration time when the operation is allowed to sleep.  Also add an
implementation of ->remove_bus() that undoes the mapping established by the
->add_bus() callback.  While it isn't currently possible to unload the
module, there is work underway to remedy this, and this code will come in
handy when that happens.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-03-08 15:40:37 -06:00
..
Kconfig PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
Makefile Merge branches 'pci/host', 'pci/host-designware', 'pci/host-hisi', 'pci/host-qcom' and 'pci/host-rcar' into next 2016-01-15 12:33:14 -06:00
pci-dra7xx.c PCI: host: Mark PCIe/PCI (MSI) IRQ cascade handlers as IRQF_NO_THREAD 2016-01-06 16:08:02 -06:00
pci-exynos.c PCI: host: Mark PCIe/PCI (MSI) IRQ cascade handlers as IRQF_NO_THREAD 2016-01-06 16:08:02 -06:00
pci-host-generic.c PCI: generic,versatile: Remove unused pci_sys_data structures 2015-11-25 12:08:04 -06:00
pci-imx6.c Merge branch 'pci/trivial' into next 2016-01-20 11:48:25 -06:00
pci-keystone-dw.c PCI: designware: Use of_pci_get_host_bridge_resources() to parse DT 2015-11-02 14:49:18 -06:00
pci-keystone.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
pci-keystone.h PCI: designware: Make get_msi_addr() return phys_addr_t, not u32 2015-09-18 13:58:35 -05:00
pci-layerscape.c PCI: layerscape: Add ls_pcie_msi_host_init() 2015-11-02 15:38:39 -06:00
pci-mvebu.c PCI: mvebu: Remove code restricting accesses to slot 0 2015-10-09 11:23:37 -05:00
pci-rcar-gen2.c PCI: rcar: Add gen2 fallback compatibility string for pci-rcar-gen2 2015-12-09 12:28:21 -06:00
pci-tegra.c PCI: tegra: Implement ->{add,remove}_bus() callbacks 2016-03-08 15:40:37 -06:00
pci-versatile.c PCI: generic,versatile: Remove unused pci_sys_data structures 2015-11-25 12:08:04 -06:00
pci-xgene-msi.c irqdomain/msi: Use fwnode instead of of_node 2015-10-13 19:01:25 +02:00
pci-xgene.c PCI/MSI: xgene: Remove msi_controller assignment 2015-09-25 18:24:28 -05:00
pcie-altera-msi.c PCI changes for the v4.4 merge window: 2015-11-06 11:29:53 -08:00
pcie-altera.c PCI: altera: Fix error when INTx is 4 2015-12-04 16:21:21 -06:00
pcie-designware.c PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
pcie-designware.h PCI: designware: Make driver arch-agnostic 2015-11-02 14:49:18 -06:00
pcie-hisi.c PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
pcie-iproc-bcma.c PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-iproc-msi.c PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-iproc-platform.c PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-iproc.c PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-iproc.h PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-qcom.c PCI: qcom: Add Qualcomm PCIe controller driver 2016-01-05 15:31:27 -06:00
pcie-rcar.c Merge branches 'pci/host', 'pci/host-designware', 'pci/host-hisi', 'pci/host-qcom' and 'pci/host-rcar' into next 2016-01-15 12:33:14 -06:00
pcie-spear13xx.c PCI: host: Mark PCIe/PCI (MSI) IRQ cascade handlers as IRQF_NO_THREAD 2016-01-06 16:08:02 -06:00
pcie-xilinx.c PCI: host: Mark PCIe/PCI (MSI) IRQ cascade handlers as IRQF_NO_THREAD 2016-01-06 16:08:02 -06:00