PCI: designware: Move Root Complex setup code to dw_pcie_setup_rc()
authorJisheng Zhang <jszhang@marvell.com>
Wed, 16 Mar 2016 11:40:33 +0000 (19:40 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 5 Apr 2016 22:04:27 +0000 (17:04 -0500)
commit7e57fd1444bf8f4ba9179f826ed6817c56b801d4
treedd7776751a04341f7f6854b31d2374cc3d158d0e
parent9735a22799b9214d17d3c231fe377fc852f042e9
PCI: designware: Move Root Complex setup code to dw_pcie_setup_rc()

dw_pcie_host_init() looks up host bridge resources, ioremaps them, creates
IRQ domains, and enumerates devices below the bridge.  dw_pcie_setup_rc()
programs the Root Complex registers.  The Root Complex may lose power
during suspend-to-RAM, and when we resume, we want to redo the latter but
not the former.

Move some Root Complex programming from dw_pcie_host_init() to
dw_pcie_setup_rc() where it belongs.  DesignWare-based drivers can call
dw_pcie_setup_rc() in their resume paths.

[Niklas Cassel <niklas.cassel@axis.com>:  This change moves outbound ATU
programming, which uses pp->mem_base, to dw_pcie_setup_rc().  Apply the
dra7xx pp->mem_base update before calling dw_pcie_setup_rc().]

[bhelgaas: changelog, fold in dra7xx fix from Niklas]
Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Pratyush Anand <pratyush.anand@gmail.com>
drivers/pci/host/pci-dra7xx.c
drivers/pci/host/pcie-designware.c