Эх сурвалжийг харах

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>
Daniel Axtens 10 жил өмнө
parent
commit
8392296697

+ 6 - 3
arch/powerpc/platforms/pasemi/msi.c

@@ -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 mpic_pasemi_msi_init(struct mpic *mpic)
 {
 {
 	int rc;
 	int rc;
+	struct pci_controller *phb;
 
 
 	if (!mpic->irqhost->of_node ||
 	if (!mpic->irqhost->of_node ||
 	    !of_device_is_compatible(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");
 	pr_debug("pasemi_msi: Registering PA Semi MPIC MSI callbacks\n");
 
 
 	msi_mpic = mpic;
 	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;
 	return 0;
 }
 }