aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2016-07-08 02:37:09 -0400
committerMichael Ellerman <mpe@ellerman.id.au>2016-07-17 02:42:45 -0400
commitfb111334e4d9b0365f76d30254fcea9032854867 (patch)
tree1497740cc1feed0ce67653a8d48827c762205136 /arch/powerpc
parentd74361881f0dfe5f9dcac37d1b753a15a2345d8c (diff)
powerpc/powernv: Discover IODA3 PHBs
We instanciate them as IODA2. We also change the MSI EOI hack to only kick on PHB3 since it will not be needed on any new implementation. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/platforms/powernv/pci-ioda.c3
-rw-r--r--arch/powerpc/platforms/powernv/pci.c4
2 files changed, 6 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
index 530d4afbe2fd..49de0816cf2b 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -2705,7 +2705,8 @@ void pnv_set_msi_irq_chip(struct pnv_phb *phb, unsigned int virq)
2705 struct irq_data *idata; 2705 struct irq_data *idata;
2706 struct irq_chip *ichip; 2706 struct irq_chip *ichip;
2707 2707
2708 if (phb->type != PNV_PHB_IODA2) 2708 /* The MSI EOI OPAL call is only needed on PHB3 */
2709 if (phb->model != PNV_PHB_MODEL_PHB3)
2709 return; 2710 return;
2710 2711
2711 if (!phb->ioda.irq_chip_init) { 2712 if (!phb->ioda.irq_chip_init) {
diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c
index 62c7637d4831..4617ea221881 100644
--- a/arch/powerpc/platforms/powernv/pci.c
+++ b/arch/powerpc/platforms/powernv/pci.c
@@ -932,6 +932,10 @@ void __init pnv_pci_init(void)
932 for_each_compatible_node(np, NULL, "ibm,ioda2-phb") 932 for_each_compatible_node(np, NULL, "ibm,ioda2-phb")
933 pnv_pci_init_ioda2_phb(np); 933 pnv_pci_init_ioda2_phb(np);
934 934
935 /* Look for ioda3 built-in PHB4's, we treat them as IODA2 */
936 for_each_compatible_node(np, NULL, "ibm,ioda3-phb")
937 pnv_pci_init_ioda2_phb(np);
938
935 /* Look for NPU PHBs */ 939 /* Look for NPU PHBs */
936 for_each_compatible_node(np, NULL, "ibm,ioda2-npu-phb") 940 for_each_compatible_node(np, NULL, "ibm,ioda2-npu-phb")
937 pnv_pci_init_npu_phb(np); 941 pnv_pci_init_npu_phb(np);