pci-hotplug/pnv_php: Add support for IODA3 Power9 PHBs
authorOliver O'Halloran <oohall@gmail.com>
Tue, 3 Sep 2019 10:16:00 +0000 (20:16 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 5 Sep 2019 04:22:39 +0000 (14:22 +1000)
Currently we check that an IODA2 compatible PHB is upstream of this slot.
This is mainly to avoid pnv_php creating slots for the various "virtual
PHBs" that we create for NVLink. There's no real need for this restriction
so allow it on IODA3.

Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190903101605.2890-10-oohall@gmail.com
arch/powerpc/platforms/powernv/pci.c
drivers/pci/hotplug/pnv_php.c

index 6104418..2825d00 100644 (file)
@@ -54,7 +54,8 @@ int pnv_pci_get_slot_id(struct device_node *np, uint64_t *id)
                        break;
                }
 
-               if (!of_device_is_compatible(parent, "ibm,ioda2-phb")) {
+               if (!of_device_is_compatible(parent, "ibm,ioda2-phb") &&
+                   !of_device_is_compatible(parent, "ibm,ioda3-phb")) {
                        of_node_put(parent);
                        continue;
                }
index b0e243d..6fdf8b7 100644 (file)
@@ -994,6 +994,9 @@ static int __init pnv_php_init(void)
        for_each_compatible_node(dn, NULL, "ibm,ioda2-phb")
                pnv_php_register(dn);
 
+       for_each_compatible_node(dn, NULL, "ibm,ioda3-phb")
+               pnv_php_register(dn);
+
        return 0;
 }
 
@@ -1003,6 +1006,9 @@ static void __exit pnv_php_exit(void)
 
        for_each_compatible_node(dn, NULL, "ibm,ioda2-phb")
                pnv_php_unregister(dn);
+
+       for_each_compatible_node(dn, NULL, "ibm,ioda3-phb")
+               pnv_php_unregister(dn);
 }
 
 module_init(pnv_php_init);