powerpc/mpic_u3msi: Move MSI-related ops to pci_controller_ops
authorDaniel Axtens <dja@axtens.net>
Tue, 14 Apr 2015 04:28:02 +0000 (14:28 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 2 Jun 2015 01:47:44 +0000 (11:47 +1000)
Move the u3 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>
arch/powerpc/sysdev/mpic_u3msi.c

index b2cef18093893c9323dbea08f9aaf1ed0dab328a..fc46ef3b816eb3ee6b0796775c4eb77b4e9bcbd5 100644 (file)
@@ -181,6 +181,7 @@ static int u3msi_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
 int mpic_u3msi_init(struct mpic *mpic)
 {
        int rc;
+       struct pci_controller *phb;
 
        rc = mpic_msi_init_allocator(mpic);
        if (rc) {
@@ -193,9 +194,11 @@ int mpic_u3msi_init(struct mpic *mpic)
        BUG_ON(msi_mpic);
        msi_mpic = mpic;
 
-       WARN_ON(ppc_md.setup_msi_irqs);
-       ppc_md.setup_msi_irqs = u3msi_setup_msi_irqs;
-       ppc_md.teardown_msi_irqs = u3msi_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 = u3msi_setup_msi_irqs;
+               phb->controller_ops.teardown_msi_irqs = u3msi_teardown_msi_irqs;
+       }
 
        return 0;
 }