• Gavin Shan's avatar
    powerpc/powernv: Create PEs in pcibios_setup_bridge() · ccd1c191
    Gavin Shan authored
    Currently, the PEs and their associated resources are assigned in
    ppc_md.pcibios_fixup() except those used by SRIOV VFs. The function
    is called for once after PCI probing and resources assignment is
    completed. So it's obviously not hotplug friendly.
    
    This creates PEs dynamically in pcibios_setup_bridge() that is
    called for the event during system bootup and PCI hotplug: updating
    PCI bridge's windows after resource assignment/reassignment are done.
    In partial hotplug case, not all PCI devices included to one particular
    PE are unplugged and plugged again, we just need unbinding/binding the
    hot added PCI devices with the corresponding PE without creating new
    one. The change is applied to IODA1 and IODA2 PHBs only. The behaviour
    on NPU PHBs aren't changed. There are no PCI bridges on NPU PHBs,
    meaning pcibios_setup_bridge() won't be invoked there. We have to use
    old path (pnv_pci_ioda_fixup()) to setup PEs on NPU PHBs.
    Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    ccd1c191
pci-ioda.c 95.9 KB