]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
LoongArch: Add and use some macros for AVEC
authorSong Gao <gaosong@loongson.cn>
Sat, 6 Dec 2025 02:39:49 +0000 (10:39 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Sat, 6 Dec 2025 02:39:49 +0000 (10:39 +0800)
Add and use some macros for AVEC interrupt controller, instead of using
magic numbers.

Signed-off-by: Song Gao <gaosong@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/include/asm/irq.h
drivers/irqchip/irq-loongarch-avec.c

index 12bd15578c3369b8d354bdaffd8c683435b90701..4a06856ece3ba3ab062e2db4a2b3e0d253243010 100644 (file)
@@ -50,6 +50,13 @@ void spurious_interrupt(void);
 #define NR_LEGACY_VECTORS      16
 #define IRQ_MATRIX_BITS                NR_VECTORS
 
+#define AVEC_IRQ_SHIFT         4
+#define AVEC_IRQ_BIT           8
+#define AVEC_IRQ_MASK          GENMASK(AVEC_IRQ_BIT - 1, 0)
+#define AVEC_CPU_SHIFT         12
+#define AVEC_CPU_BIT           16
+#define AVEC_CPU_MASK          GENMASK(AVEC_CPU_BIT - 1, 0)
+
 #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
 void arch_trigger_cpumask_backtrace(const struct cpumask *mask, int exclude_cpu);
 
index bf52dc8345f5ffeb27494344dfd02ba8f915401c..ba556c008cf32dfe349d0dea5bc1cbf74a570035 100644 (file)
@@ -209,8 +209,9 @@ static void avecintc_compose_msi_msg(struct irq_data *d, struct msi_msg *msg)
        struct avecintc_data *adata = irq_data_get_irq_chip_data(d);
 
        msg->address_hi = 0x0;
-       msg->address_lo = (loongarch_avec.msi_base_addr | (adata->vec & 0xff) << 4)
-                         | ((cpu_logical_map(adata->cpu & 0xffff)) << 12);
+       msg->address_lo = (loongarch_avec.msi_base_addr |
+                         (adata->vec & AVEC_IRQ_MASK) << AVEC_IRQ_SHIFT) |
+                         ((cpu_logical_map(adata->cpu & AVEC_CPU_MASK)) << AVEC_CPU_SHIFT);
        msg->data = 0x0;
 }