aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/arch/powerpc/platforms/pasemi/msi.c
diff options
context:
space:
mode:
authorDaniel Axtens <dja@axtens.net>2015-04-14 14:28:01 +1000
committerMichael Ellerman <mpe@ellerman.id.au>2015-06-02 11:47:43 +1000
commit83922966973e19a48b6e59f9fa1259aa790a33c1 (patch)
treeb4b35ca66148870324b422f99f1bed942f89f9c9 /arch/powerpc/platforms/pasemi/msi.c
parentpowerpc/ppc4xx_hsta_msi: Move MSI-related ops to pci_controller_ops (diff)
downloadwireguard-linux-83922966973e19a48b6e59f9fa1259aa790a33c1.tar.xz
wireguard-linux-83922966973e19a48b6e59f9fa1259aa790a33c1.zip
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>
Diffstat (limited to '')
-rw-r--r--arch/powerpc/platforms/pasemi/msi.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/powerpc/platforms/pasemi/msi.c b/arch/powerpc/platforms/pasemi/msi.c
index 0b3706604543..27f2b187a91b 100644
--- a/arch/powerpc/platforms/pasemi/msi.c
+++ b/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 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;
}