lib: utils/irqchip: Avoid redundant writes to APLIC CLRIE register
authorAnup Patel <apatel@ventanamicro.com>
Tue, 21 Nov 2023 06:04:14 +0000 (11:34 +0530)
committerAnup Patel <anup@brainfault.org>
Fri, 24 Nov 2023 07:18:41 +0000 (12:48 +0530)
Each APLIC CLRIE register allows disabling 32 interrupt sources at
a time by writing -1 so no need to write CLRIE register separately
for each interrupt source.

Fixes: 99792653de29 ("lib: utils/irqchip: Add APLIC initialization library")
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Reviewed-by: Atish Patra <atishp@rivosinc.com>
lib/utils/irqchip/aplic.c

index d7fd99280442db16eaadd5731550cdfe53f9e38c..10236e7ad16e102bbd633358131b840a9ca1142a 100644 (file)
@@ -193,7 +193,7 @@ int aplic_cold_irqchip_init(struct aplic_data *aplic)
        writel(0, (void *)(aplic->addr + APLIC_DOMAINCFG));
 
        /* Disable all interrupts */
-       for (i = 0; i <= aplic->num_source; i++)
+       for (i = 0; i <= aplic->num_source; i += 32)
                writel(-1U, (void *)(aplic->addr + APLIC_CLRIE_BASE +
                                     (i / 32) * sizeof(u32)));