This series of patches adds loadable kernel module and power management support to Tegra PCIe host controller driver. irq_set_msi_desc() and tegra_cpuidle_pcie_irqs_in_use() symbols will be taken care in next set of patches. These patches are tested on Jetson TK1, TX1 and TX2 platforms, following are the verification details. - Multiple module insert & remove - PCIe device functionality after module insert - Free clock, resets, regulators, powergate, iomem and interrupt resources after module remove - PCIe device functionality after resume from RAM V2: PM QoS fix is dropped in V2 from this series because the fix is incorporated in latest 'commit 0759e80b84e3 ("PM / QoS: Fix device resume latency framework")'. Update commit message of few patches in V2. V3: Patches to export irq_set_msi_desc() and tegra_cpuidle_pcie_irqs_in_use() are dropped based on review comments. These symbols will be addressed in next series. Took care of few other review comments. V4: Dropped pci_find_host_bridge() export patch and added new patch to use bus->sysdata for private data. V5: Decouple from https://patchwork.ozlabs.org/patch/832053/ and rebase on top of linux-next Manikanta Maddireddy (7): of: Export of_pci_range_to_resource() PCI: tegra: Use bus->sysdata to store and get host private data PCI: tegra: Remove PCI_REASSIGN_ALL_BUS flag for Tegra PCIe PCI: tegra: Free resources on probe failure PCI: tegra: Add loadable kernel module support PCI: tegra: Broadcast PME_Turn_Off message before link goes to L2 PCI: tegra: Add power management support drivers/of/address.c | 1 + drivers/pci/host/Kconfig | 2 +- drivers/pci/host/pci-tegra.c | 333 ++++++++++++++++++++++++++++++++----------- 3 files changed, 253 insertions(+), 83 deletions(-) -- 2.1.4