mpc83xx: fix pcie enumeration
This patch fix a problem for the pcie enumeration for mpc83xx cpus. Without this we will not get correct value in hose->regions[...]. The pointer *reg in function mpc83xx_pcie_init_bus() shall not be changed. Because we will use this pointer as a parameter to call function mpc83xx_pcie_register_hose(). Signed-off-by: Baidu Boy <liucai.lfn@gmail.com> Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
This commit is contained in:
parent
ac8983bcba
commit
054289f752
@ -201,18 +201,18 @@ static void mpc83xx_pcie_init_bus(int bus, struct pci_region *reg)
|
||||
out_le32(&out_win->tarl, 0);
|
||||
out_le32(&out_win->tarh, 0);
|
||||
|
||||
for (i = 0; i < 2; i++, reg++) {
|
||||
for (i = 0; i < 2; i++) {
|
||||
u32 ar;
|
||||
|
||||
if (reg->size == 0)
|
||||
if (reg[i].size == 0)
|
||||
break;
|
||||
|
||||
out_win = &pex->bridge.pex_outbound_win[i + 1];
|
||||
out_le32(&out_win->bar, reg->phys_start);
|
||||
out_le32(&out_win->tarl, reg->bus_start);
|
||||
out_le32(&out_win->bar, reg[i].phys_start);
|
||||
out_le32(&out_win->tarl, reg[i].bus_start);
|
||||
out_le32(&out_win->tarh, 0);
|
||||
ar = PEX_OWAR_EN | (reg->size & PEX_OWAR_SIZE);
|
||||
if (reg->flags & PCI_REGION_IO)
|
||||
ar = PEX_OWAR_EN | (reg[i].size & PEX_OWAR_SIZE);
|
||||
if (reg[i].flags & PCI_REGION_IO)
|
||||
ar |= PEX_OWAR_TYPE_IO;
|
||||
else
|
||||
ar |= PEX_OWAR_TYPE_MEM;
|
||||
|
Loading…
Reference in New Issue
Block a user