[PATCH 6/8] Let subordinate transparent bridges be transparent.

Jon Loeliger jdl at freescale.com
Sat Jun 2 03:48:55 EST 2007


In pcibios_fixup_bus(), bridges that are subordinate
to transparent bridges were still relocating their
IORESOURCE_IO start and end values.

Fix this by preventing the transparent bridge from
relocating the start and end values, thus allowing the
subordinate non-transparent bridge full molestation rights.

Signed-off-by: York Sun <yorksun at freescale.com>
Signed-off-by: Andy Fleming <afleming at freescale.com>
Signed-off-by: Jon Loeliger <jdl at freescale.com>
---
 arch/powerpc/kernel/pci_32.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c
index e66064b..102264c 100644
--- a/arch/powerpc/kernel/pci_32.c
+++ b/arch/powerpc/kernel/pci_32.c
@@ -1372,7 +1372,9 @@ void __init pcibios_fixup_bus(struct pci_bus *bus)
 				continue;
 			if (!res->flags)
 				continue;
-			if (io_offset && (res->flags & IORESOURCE_IO)) {
+			if (!bus->self->transparent
+			    && io_offset
+			    && (res->flags & IORESOURCE_IO)) {
 				res->start += io_offset;
 				res->end += io_offset;
 			} else if (hose->pci_mem_offset
-- 
1.5.0.3




More information about the Linuxppc-dev mailing list