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.
---
 arch/powerpc/sysdev/mpic_pasemi_msi.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/sysdev/mpic_pasemi_msi.c 
b/arch/powerpc/sysdev/mpic_pasemi_msi.c
index a3f660e..b49334c 100644
--- a/arch/powerpc/sysdev/mpic_pasemi_msi.c
+++ b/arch/powerpc/sysdev/mpic_pasemi_msi.c
@@ -144,6 +144,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,
@@ -159,9 +160,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;
 }
-- 
2.1.4

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to