[Skiboot] [PATCH 2/3] hw/psi-p9: Follow the external IRQ policy

Oliver O'Halloran oohall at gmail.com
Fri Aug 30 14:30:24 AEST 2019


The P8 PSI support follows the external IRQ policy and the P9 PSI
doesn't. There are no P9 platforms which define an .external_irq()
in the platform structure so this should not cause any functional
changes.

Linux is smart enough to mask LSIs without a registered handler so
directing them at the OS should be safe.

Cc: Cédric Le Goater <clg at kaod.org>
Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
---
 hw/psi.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/hw/psi.c b/hw/psi.c
index d4b20f1f015f..01c815ccf7b2 100644
--- a/hw/psi.c
+++ b/hw/psi.c
@@ -601,6 +601,10 @@ static uint64_t psi_p9_irq_attributes(struct irq_source *is __unused,
 	 if (is_lpc_serirq)
 		 return lpc_get_irq_policy(psi->chip_id, idx - P9_PSI_IRQ_LPC_SIRQ0);
 
+	if (idx == P9_PSI_IRQ_EXTERNAL)
+		if (psi_ext_irq_policy == EXTERNAL_IRQ_POLICY_LINUX)
+			return IRQ_ATTR_TARGET_LINUX | IRQ_ATTR_TYPE_LSI;
+
 	return IRQ_ATTR_TARGET_OPAL | IRQ_ATTR_TYPE_LSI;
 }
 
-- 
2.21.0



More information about the Skiboot mailing list