mpc83xx: fix pcie enumeration
authorBaidu Boy <liucai.lfn@gmail.com>
Mon, 29 Nov 2010 13:10:45 +0000 (21:10 +0800)
committerKim Phillips <kim.phillips@freescale.com>
Mon, 13 Dec 2010 19:55:56 +0000 (13:55 -0600)
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>
arch/powerpc/cpu/mpc83xx/pcie.c

index 1771c4823ccbe83deca75578e00ad235cad59aef..46a706d349da233891d241ae55526a0f117acb4e 100644 (file)
@@ -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;