[POWERPC] Fixup transparent P2P resources
authorKumar Gala <galak@kernel.crashing.org>
Mon, 14 Jan 2008 15:41:36 +0000 (09:41 -0600)
committerKumar Gala <galak@kernel.crashing.org>
Thu, 24 Jan 2008 01:30:33 +0000 (19:30 -0600)
For transparent P2P bridges the first 3 resources may get set from based on
BAR registers and need to get fixed up. Where as the remainder come from the
parent bus and have already been fixed up.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/kernel/pci-common.c

index 7d0afd47b3e0d0ff088e13d0461499ba17f6d3a6..980fe32895c0af5aed4e97142ef479dc234ff88f 100644 (file)
@@ -792,9 +792,10 @@ static void __devinit __pcibios_fixup_bus(struct pci_bus *bus)
                for (i = 0; i < PCI_BUS_NUM_RESOURCES; ++i) {
                        if ((res = bus->resource[i]) == NULL)
                                continue;
-                       if (!res->flags || bus->self->transparent)
+                       if (!res->flags)
+                               continue;
+                       if (i >= 3 && bus->self->transparent)
                                continue;
-
                        /* On PowerMac, Apple leaves bridge windows open over
                         * an inaccessible region of memory space (0...fffff)
                         * which is somewhat bogus, but that's what they think