Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e557a1c9 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt Committed by Paul Mackerras
Browse files

[POWERPC] Resolve the parent address of a PCI bus range



When parsing the OF "ranges" properties of PCI host busses to determine
the mapping of a PCI bus, we need to translate the "parent" address using
the prom_parse.c routines in order to obtain a CPU physical address.

This wasn't necessary while PCI busses were always at the root of the
device-tree but this is no longer the case on Cell where they can be
anywhere in the tree.

Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 86810878
Loading
Loading
Loading
Loading
+1 −5
Original line number Original line Diff line number Diff line
@@ -967,11 +967,7 @@ void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose,
		res = NULL;
		res = NULL;
		pci_space = ranges[0];
		pci_space = ranges[0];
		pci_addr = ((unsigned long)ranges[1] << 32) | ranges[2];
		pci_addr = ((unsigned long)ranges[1] << 32) | ranges[2];

		cpu_phys_addr = of_translate_address(dev, &ranges[3]);
		cpu_phys_addr = ranges[3];
		if (na >= 2)
			cpu_phys_addr = (cpu_phys_addr << 32) | ranges[4];

		size = ((unsigned long)ranges[na+3] << 32) | ranges[na+4];
		size = ((unsigned long)ranges[na+3] << 32) | ranges[na+4];
		ranges += np;
		ranges += np;
		if (size == 0)
		if (size == 0)