diff options
author | Cédric Le Goater <clg@kaod.org> | 2021-08-04 12:51:16 +0530 |
---|---|---|
committer | Vasant Hegde <hegdevasant@linux.vnet.ibm.com> | 2021-08-06 12:27:46 +0530 |
commit | 0c6a3065eb11a25bf89577b73eae34ec6173d148 (patch) | |
tree | caec5f4185b896995a879668b8e67a45b73320a2 /hw | |
parent | 47f46e5ff3f816b135b65e210aff65d9194698fa (diff) | |
download | skiboot-0c6a3065eb11a25bf89577b73eae34ec6173d148.zip skiboot-0c6a3065eb11a25bf89577b73eae34ec6173d148.tar.gz skiboot-0c6a3065eb11a25bf89577b73eae34ec6173d148.tar.bz2 |
psi/p10: 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.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -766,6 +766,8 @@ static void psi_init_p10_interrupts(struct psi *psi) u64 val; uint32_t esb_shift = 16; uint32_t flags = XIVE_SRC_LSI; + struct irq_source *is; + int isn; /* Grab chip */ chip = get_chip(psi->chip_id); @@ -813,6 +815,11 @@ static void psi_init_p10_interrupts(struct psi *psi) esb_shift, psi->esb_mmio, flags, psi, &psi_p10_irq_ops); + /* Mask all sources */ + is = irq_find_source(psi->interrupt); + for (isn = is->start; isn < is->end; isn++) + xive2_source_mask(is, isn); + /* Reset irq handling and switch to ESB mode */ out_be64(psi->regs + PSIHB_INTERRUPT_CONTROL, PSIHB_IRQ_RESET); out_be64(psi->regs + PSIHB_INTERRUPT_CONTROL, 0); |