[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: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
868108784c
commit
e557a1c96c
1 changed files with 1 additions and 5 deletions
|
@ -967,11 +967,7 @@ void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose,
|
|||
res = NULL;
|
||||
pci_space = ranges[0];
|
||||
pci_addr = ((unsigned long)ranges[1] << 32) | ranges[2];
|
||||
|
||||
cpu_phys_addr = ranges[3];
|
||||
if (na >= 2)
|
||||
cpu_phys_addr = (cpu_phys_addr << 32) | ranges[4];
|
||||
|
||||
cpu_phys_addr = of_translate_address(dev, &ranges[3]);
|
||||
size = ((unsigned long)ranges[na+3] << 32) | ranges[na+4];
|
||||
ranges += np;
|
||||
if (size == 0)
|
||||
|
|
Reference in a new issue