diff options
author | Anup Patel <apatel@ventanamicro.com> | 2024-03-11 18:00:50 +0530 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2024-03-19 11:31:35 +0530 |
commit | 43d346c0c1d3817d863741c3c523ab6e0c87cc6f (patch) | |
tree | 5b06f52ff08b78f2eb47cdf9e9dd2e8ef49b7ec4 | |
parent | d84e7eb7f0848225e10131ca4b9e1571d78cdabd (diff) | |
download | opensbi-43d346c0c1d3817d863741c3c523ab6e0c87cc6f.zip opensbi-43d346c0c1d3817d863741c3c523ab6e0c87cc6f.tar.gz opensbi-43d346c0c1d3817d863741c3c523ab6e0c87cc6f.tar.bz2 |
lib: sbi: Remove regs parameter from trap irq handling functions
The trap irq handling functions no longer require regs parameter
so remove it.
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Reviewed-by: Samuel Holland <samuel.holland@sifive.com>
Tested-by: Samuel Holland <samuel.holland@sifive.com>
-rw-r--r-- | include/sbi/riscv_encoding.h | 2 | ||||
-rw-r--r-- | lib/sbi/sbi_trap.c | 13 |
2 files changed, 8 insertions, 7 deletions
diff --git a/include/sbi/riscv_encoding.h b/include/sbi/riscv_encoding.h index 46bbeed..d914828 100644 --- a/include/sbi/riscv_encoding.h +++ b/include/sbi/riscv_encoding.h @@ -80,6 +80,8 @@ #define HSTATUS_GVA _UL(0x00000040) #define HSTATUS_VSBE _UL(0x00000020) +#define MCAUSE_IRQ_MASK (_UL(1) << (__riscv_xlen - 1)) + #define IRQ_S_SOFT 1 #define IRQ_VS_SOFT 2 #define IRQ_M_SOFT 3 diff --git a/lib/sbi/sbi_trap.c b/lib/sbi/sbi_trap.c index 72b1788..2462763 100644 --- a/lib/sbi/sbi_trap.c +++ b/lib/sbi/sbi_trap.c @@ -198,10 +198,9 @@ int sbi_trap_redirect(struct sbi_trap_regs *regs, return 0; } -static int sbi_trap_nonaia_irq(struct sbi_trap_regs *regs, ulong mcause) +static int sbi_trap_nonaia_irq(unsigned long irq) { - mcause &= ~(1UL << (__riscv_xlen - 1)); - switch (mcause) { + switch (irq) { case IRQ_M_TIMER: sbi_timer_process(); break; @@ -217,7 +216,7 @@ static int sbi_trap_nonaia_irq(struct sbi_trap_regs *regs, ulong mcause) return 0; } -static int sbi_trap_aia_irq(struct sbi_trap_regs *regs, ulong mcause) +static int sbi_trap_aia_irq(void) { int rc; unsigned long mtopi; @@ -273,12 +272,12 @@ struct sbi_trap_context *sbi_trap_handler(struct sbi_trap_context *tcntx) tcntx->prev_context = sbi_trap_get_context(scratch); sbi_trap_set_context(scratch, tcntx); - if (mcause & (1UL << (__riscv_xlen - 1))) { + if (mcause & MCAUSE_IRQ_MASK) { if (sbi_hart_has_extension(sbi_scratch_thishart_ptr(), SBI_HART_EXT_SMAIA)) - rc = sbi_trap_aia_irq(regs, mcause); + rc = sbi_trap_aia_irq(); else - rc = sbi_trap_nonaia_irq(regs, mcause); + rc = sbi_trap_nonaia_irq(mcause & ~MCAUSE_IRQ_MASK); msg = "unhandled local interrupt"; goto trap_done; } |