pci: tegra: call tegra_pcie_board_init() earlier
authorStephen Warren <swarren@nvidia.com>
Mon, 5 Oct 2015 23:00:43 +0000 (17:00 -0600)
committerTom Warren <twarren@nvidia.com>
Thu, 12 Nov 2015 16:21:05 +0000 (09:21 -0700)
The board PCI setup code may control regulators that are required simply
to bring up the PCI controller itself (or PLLs, IOs, ... it uses). Move
the call to this function earlier so that all board-provided resources
are ready early enough for everything to work.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
drivers/pci/pci_tegra.c

index 177d48d..bf078b3 100644 (file)
@@ -618,8 +618,6 @@ static int tegra_pcie_power_on(struct tegra_pcie *pcie)
                return err;
        }
 
-       tegra_pcie_board_init();
-
        err = tegra_powergate_sequence_power_up(TEGRA_POWERGATE_PCIE,
                                                PERIPH_ID_PCIE);
        if (err < 0) {
@@ -1164,6 +1162,8 @@ void pci_init_board(void)
        const void *fdt = gd->fdt_blob;
        int count, nodes[1];
 
+       tegra_pcie_board_init();
+
        count = fdtdec_find_aliases_for_id(fdt, "pcie-controller",
                                           COMPAT_NVIDIA_TEGRA124_PCIE,
                                           nodes, ARRAY_SIZE(nodes));