aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorCédric Le Goater <clg@kaod.org>2020-11-04 23:20:55 +0100
committerVasant Hegde <hegdevasant@linux.vnet.ibm.com>2020-11-27 15:37:15 +0530
commit73bda5eff300a6d6f1a548942d878de48d034341 (patch)
tree8a207f96298b2110bb42b3459a2adf589bca31f0 /hw
parent183861801d5529dd03108f30f2677bcf5b57525c (diff)
downloadskiboot-73bda5eff300a6d6f1a548942d878de48d034341.zip
skiboot-73bda5eff300a6d6f1a548942d878de48d034341.tar.gz
skiboot-73bda5eff300a6d6f1a548942d878de48d034341.tar.bz2
psi/p9: mask all sources at init
Signed-off-by: Cédric Le Goater <clg@kaod.org> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/psi.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/hw/psi.c b/hw/psi.c
index 8a07047..545a816 100644
--- a/hw/psi.c
+++ b/hw/psi.c
@@ -530,6 +530,17 @@ static const char *psi_p9_irq_names[P9_PSI_NUM_IRQS] = {
"psu"
};
+static void psi_p9_mask_all(struct psi *psi)
+{
+ struct irq_source *is;
+ int isn;
+
+ /* Mask all sources */
+ is = irq_find_source(psi->interrupt);
+ for (isn = is->start; isn < is->end; isn++)
+ xive_source_mask(is, isn);
+}
+
static void psi_p9_mask_unhandled_irq(struct irq_source *is, uint32_t isn)
{
struct psi *psi = is->data;
@@ -709,6 +720,8 @@ static void psi_init_p9_interrupts(struct psi *psi)
12, psi->esb_mmio, XIVE_SRC_LSI,
psi, &psi_p9_irq_ops);
+ psi_p9_mask_all(psi);
+
/* Setup interrupt offset */
val = xive_get_notify_base(psi->interrupt);
val <<= 32;