aboutsummaryrefslogtreecommitdiff
path: root/hw/psi.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2018-04-10 17:01:54 +1000
committerStewart Smith <stewart@linux.ibm.com>2018-04-11 17:59:57 -0500
commit9c21cae5aac4246ac4e438cac5a96a24907676c7 (patch)
tree2a68c58cc0adff8abc234105bb2a548885f9a995 /hw/psi.c
parent379ec78e3da982cd1dff1533d50a9b29b025db5b (diff)
downloadskiboot-9c21cae5aac4246ac4e438cac5a96a24907676c7.zip
skiboot-9c21cae5aac4246ac4e438cac5a96a24907676c7.tar.gz
skiboot-9c21cae5aac4246ac4e438cac5a96a24907676c7.tar.bz2
interrupts: Create an "interrupts" property in the OPAL node
Deprecate the old "opal-interrupts", it's still there, but the new property follows the standard and allow us to specify whether an interrupt is level or edge sensitive. Similarly create "interrupt-names" whose content is identical to "opal-interrupts-names". Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
Diffstat (limited to 'hw/psi.c')
-rw-r--r--hw/psi.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/hw/psi.c b/hw/psi.c
index 69e03e5..70095a6 100644
--- a/hw/psi.c
+++ b/hw/psi.c
@@ -377,7 +377,7 @@ static int64_t psi_p7_get_xive(struct irq_source *is, uint32_t isn __unused,
static uint64_t psi_p7_irq_attributes(struct irq_source *is __unused,
uint32_t isn __unused)
{
- return IRQ_ATTR_TARGET_OPAL | IRQ_ATTR_TARGET_FREQUENT;
+ return IRQ_ATTR_TARGET_OPAL | IRQ_ATTR_TARGET_FREQUENT | IRQ_ATTR_TYPE_LSI;
}
static const uint32_t psi_p8_irq_to_xivr[P8_IRQ_PSI_IRQ_COUNT] = {
@@ -530,7 +530,7 @@ static uint64_t psi_p8_irq_attributes(struct irq_source *is, uint32_t isn)
psi_ext_irq_policy == EXTERNAL_IRQ_POLICY_LINUX)
return IRQ_ATTR_TARGET_LINUX;
- attr = IRQ_ATTR_TARGET_OPAL;
+ attr = IRQ_ATTR_TARGET_OPAL | IRQ_ATTR_TYPE_LSI;
if (idx == P8_IRQ_PSI_EXTERNAL || idx == P8_IRQ_PSI_LPC ||
idx == P8_IRQ_PSI_FSP)
attr |= IRQ_ATTR_TARGET_FREQUENT;
@@ -634,7 +634,7 @@ 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);
- return IRQ_ATTR_TARGET_OPAL;
+ return IRQ_ATTR_TARGET_OPAL | IRQ_ATTR_TYPE_LSI;
}
static char *psi_p9_irq_name(struct irq_source *is, uint32_t isn)