PCI: rcar: Fix I/O offset for multiple host bridges
Fix I/O offset for multiple host bridges. Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Simon Horman <horms+renesas@verge.net.au>
This commit is contained in:
parent
42175a3553
commit
8c53e8ed00
|
@ -108,6 +108,8 @@
|
|||
#define RCAR_PCI_MAX_RESOURCES 4
|
||||
#define MAX_NR_INBOUND_MAPS 6
|
||||
|
||||
static unsigned long global_io_offset;
|
||||
|
||||
struct rcar_msi {
|
||||
DECLARE_BITMAP(used, INT_PCI_MSI_NR);
|
||||
struct irq_domain *domain;
|
||||
|
@ -357,7 +359,7 @@ static void rcar_pcie_setup_window(int win, struct rcar_pcie *pcie)
|
|||
rcar_pci_write_reg(pcie, mask, PCIEPTCTLR(win));
|
||||
}
|
||||
|
||||
static int rcar_pcie_setup(int nr, struct list_head *resource, struct rcar_pcie *pcie)
|
||||
static int rcar_pcie_setup(struct list_head *resource, struct rcar_pcie *pcie)
|
||||
{
|
||||
struct resource *res;
|
||||
int i;
|
||||
|
@ -375,7 +377,8 @@ static int rcar_pcie_setup(int nr, struct list_head *resource, struct rcar_pcie
|
|||
|
||||
if (res->flags & IORESOURCE_IO) {
|
||||
phys_addr_t io_start = pci_pio_to_address(res->start);
|
||||
pci_ioremap_io(nr * SZ_64K, io_start);
|
||||
pci_ioremap_io(global_io_offset, io_start);
|
||||
global_io_offset += SZ_64K;
|
||||
}
|
||||
|
||||
pci_add_resource(resource, res);
|
||||
|
@ -390,7 +393,7 @@ static int rcar_pcie_enable(struct rcar_pcie *pcie)
|
|||
struct pci_bus *bus, *child;
|
||||
LIST_HEAD(res);
|
||||
|
||||
rcar_pcie_setup(1, &res, pcie);
|
||||
rcar_pcie_setup(&res, pcie);
|
||||
|
||||
/* Do not reassign resources if probe only */
|
||||
if (!pci_has_flag(PCI_PROBE_ONLY))
|
||||
|
|
Loading…
Reference in New Issue