diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/pci-opal.c | 9 | ||||
-rw-r--r-- | core/pci.c | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/core/pci-opal.c b/core/pci-opal.c index aa375c6..acbcd2a 100644 --- a/core/pci-opal.c +++ b/core/pci-opal.c @@ -748,7 +748,8 @@ static void rescan_slot_devices(struct pci_slot *slot) * prepare_link_change() is called (if needed) by the state * machine during the slot reset or link polling */ - if (phb->phb_type != phb_type_npu_v2_opencapi) { + if ((phb->phb_type != phb_type_npu_v2_opencapi) && + (phb->phb_type != phb_type_pau_opencapi)) { pci_scan_bus(phb, pd->secondary_bus, pd->subordinate_bus, &pd->children, pd, true); pci_add_device_nodes(phb, &pd->children, pd->dn, @@ -766,7 +767,8 @@ static void remove_slot_devices(struct pci_slot *slot) struct phb *phb = slot->phb; struct pci_device *pd = slot->pd; - if (phb->phb_type != phb_type_npu_v2_opencapi) + if ((phb->phb_type != phb_type_npu_v2_opencapi) && + (phb->phb_type != phb_type_pau_opencapi)) pci_remove_bus(phb, &pd->children); else pci_remove_bus(phb, &phb->devices); @@ -817,7 +819,8 @@ static bool training_needed(struct pci_slot *slot) struct pci_device *pd = slot->pd; /* only for opencapi slots for now */ - if (!pd && phb->phb_type == phb_type_npu_v2_opencapi) + if (!pd && ((phb->phb_type == phb_type_npu_v2_opencapi) || + (phb->phb_type == phb_type_pau_opencapi))) return true; return false; } @@ -1517,7 +1517,9 @@ static void __noinline pci_add_one_device_node(struct phb *phb, * device has a 4KB config space. It's got nothing to do with the * standard Type 0/1 config spaces defined by PCI. */ - if (is_pcie || phb->phb_type == phb_type_npu_v2_opencapi) { + if (is_pcie || + (phb->phb_type == phb_type_npu_v2_opencapi) || + (phb->phb_type == phb_type_pau_opencapi)) { snprintf(compat, MAX_NAME, "pciex%x,%x", PCI_VENDOR_ID(pd->vdid), PCI_DEVICE_ID(pd->vdid)); dt_add_property_cells(np, "ibm,pci-config-space-type", 1); |