powerpc/pasemi: Move MSI-related ops to pci_controller_ops
Move the PaSemi MPIC msi subsystem to use the pci_controller_ops structure rather than ppc_md for MSI related PCI controller operations. As with fsl_msi, operations are plugged in at the subsys level, after controller creation. Again, we iterate over all controllers and populate them with the MSI ops. Signed-off-by: Daniel Axtens <dja@axtens.net> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
f2c800aace
commit
8392296697
|
@ -142,6 +142,7 @@ static int pasemi_msi_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
|
|||
int mpic_pasemi_msi_init(struct mpic *mpic)
|
||||
{
|
||||
int rc;
|
||||
struct pci_controller *phb;
|
||||
|
||||
if (!mpic->irqhost->of_node ||
|
||||
!of_device_is_compatible(mpic->irqhost->of_node,
|
||||
|
@ -157,9 +158,11 @@ int mpic_pasemi_msi_init(struct mpic *mpic)
|
|||
pr_debug("pasemi_msi: Registering PA Semi MPIC MSI callbacks\n");
|
||||
|
||||
msi_mpic = mpic;
|
||||
WARN_ON(ppc_md.setup_msi_irqs);
|
||||
ppc_md.setup_msi_irqs = pasemi_msi_setup_msi_irqs;
|
||||
ppc_md.teardown_msi_irqs = pasemi_msi_teardown_msi_irqs;
|
||||
list_for_each_entry(phb, &hose_list, list_node) {
|
||||
WARN_ON(phb->controller_ops.setup_msi_irqs);
|
||||
phb->controller_ops.setup_msi_irqs = pasemi_msi_setup_msi_irqs;
|
||||
phb->controller_ops.teardown_msi_irqs = pasemi_msi_teardown_msi_irqs;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue