lib: sbi: Remove regs paramter of sbi_irqchip_process()
authorAnup Patel <apatel@ventanamicro.com>
Mon, 11 Mar 2024 12:23:41 +0000 (17:53 +0530)
committerAnup Patel <anup@brainfault.org>
Tue, 19 Mar 2024 06:01:33 +0000 (11:31 +0530)
The irqchip handlers will typically not need pointer to trap registers
so remove regs parameter of sbi_irqchip_process().

Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Reviewed-by: Samuel Holland <samuel.holland@sifive.com>
Tested-by: Samuel Holland <samuel.holland@sifive.com>
Reviewed-by: Clément Léger <cleger@rivosinc.com>
include/sbi/sbi_irqchip.h
lib/sbi/sbi_irqchip.c
lib/sbi/sbi_trap.c
lib/utils/irqchip/imsic.c

index 6acc6e3f5a55ace1aa0f2a5c0e20cb8741c45173..0ed02eb4ac951193ff830e950b21030406934fb3 100644 (file)
@@ -13,7 +13,6 @@
 #include <sbi/sbi_types.h>
 
 struct sbi_scratch;
-struct sbi_trap_regs;
 
 /**
  * Set external interrupt handling function
@@ -23,7 +22,7 @@ struct sbi_trap_regs;
  *
  * @param fn function pointer for handling external irqs
  */
-void sbi_irqchip_set_irqfn(int (*fn)(struct sbi_trap_regs *regs));
+void sbi_irqchip_set_irqfn(int (*fn)(void));
 
 /**
  * Process external interrupts
@@ -33,7 +32,7 @@ void sbi_irqchip_set_irqfn(int (*fn)(struct sbi_trap_regs *regs));
  *
  * @param regs pointer for trap registers
  */
-int sbi_irqchip_process(struct sbi_trap_regs *regs);
+int sbi_irqchip_process(void);
 
 /** Initialize interrupt controllers */
 int sbi_irqchip_init(struct sbi_scratch *scratch, bool cold_boot);
index 24128bece5ad6d8cbce248519591b1fbd203c02a..0ae604aa672dcbed7bdca0eb5a803e0a15323b1d 100644 (file)
 #include <sbi/sbi_irqchip.h>
 #include <sbi/sbi_platform.h>
 
-static int default_irqfn(struct sbi_trap_regs *regs)
+static int default_irqfn(void)
 {
        return SBI_ENODEV;
 }
 
-static int (*ext_irqfn)(struct sbi_trap_regs *regs) = default_irqfn;
+static int (*ext_irqfn)(void) = default_irqfn;
 
-void sbi_irqchip_set_irqfn(int (*fn)(struct sbi_trap_regs *regs))
+void sbi_irqchip_set_irqfn(int (*fn)(void))
 {
        if (fn)
                ext_irqfn = fn;
 }
 
-int sbi_irqchip_process(struct sbi_trap_regs *regs)
+int sbi_irqchip_process(void)
 {
-       return ext_irqfn(regs);
+       return ext_irqfn();
 }
 
 int sbi_irqchip_init(struct sbi_scratch *scratch, bool cold_boot)
index 4e691dfc5c313a69d2901a9d5335d74031d12f85..72b1788153b2cbe1f801d322a39f9d397023b793 100644 (file)
@@ -209,7 +209,7 @@ static int sbi_trap_nonaia_irq(struct sbi_trap_regs *regs, ulong mcause)
                sbi_ipi_process();
                break;
        case IRQ_M_EXT:
-               return sbi_irqchip_process(regs);
+               return sbi_irqchip_process();
        default:
                return SBI_ENOENT;
        }
@@ -232,7 +232,7 @@ static int sbi_trap_aia_irq(struct sbi_trap_regs *regs, ulong mcause)
                        sbi_ipi_process();
                        break;
                case IRQ_M_EXT:
-                       rc = sbi_irqchip_process(regs);
+                       rc = sbi_irqchip_process();
                        if (rc)
                                return rc;
                        break;
index 36ef66cf1ebbdb81411d0e67440494f19407ff28..f2a35c6302b2bebfb2a0aa6511d75fd532e445d9 100644 (file)
@@ -140,7 +140,7 @@ int imsic_get_target_file(u32 hartid)
        return imsic_get_hart_file(scratch);
 }
 
-static int imsic_external_irqfn(struct sbi_trap_regs *regs)
+static int imsic_external_irqfn(void)
 {
        ulong mirq;