powerpc/pasemi: Search for PCI root bus by compatible property
authorDarren Stevens <darren@stevens-zone.net>
Wed, 25 Jul 2018 20:55:18 +0000 (21:55 +0100)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 7 Aug 2018 11:49:31 +0000 (21:49 +1000)
Pasemi arch code finds the root of the PCI-e bus by searching the
device-tree for a node called 'pxp'. But the root bus has a compatible
property of 'pasemi,rootbus' so search for that instead.

Signed-off-by: Darren Stevens <darren@stevens-zone.net>
Acked-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/platforms/pasemi/pci.c

index aea9ff2..3e3e807 100644 (file)
@@ -216,6 +216,7 @@ static int __init pas_add_bridge(struct device_node *dev)
 void __init pas_pci_init(void)
 {
        struct device_node *np, *root;
+       int res;
 
        root = of_find_node_by_path("/");
        if (!root) {
@@ -226,11 +227,11 @@ void __init pas_pci_init(void)
 
        pci_set_flags(PCI_SCAN_ALL_PCIE_DEVS);
 
-       for (np = NULL; (np = of_get_next_child(root, np)) != NULL;)
-               if (np->name && !strcmp(np->name, "pxp") && !pas_add_bridge(np))
-                       of_node_get(np);
-
-       of_node_put(root);
+       np = of_find_compatible_node(root, NULL, "pasemi,rootbus");
+       if (np) {
+               res = pas_add_bridge(np);
+               of_node_put(np);
+       }
 }
 
 void __iomem *pasemi_pci_getcfgaddr(struct pci_dev *dev, int offset)