Skip to content

Commit dbb994b

Browse files
gaosong-loongsonchenhuacai
authored andcommitted
LoongArch: Add and use some macros for AVEC
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>
1 parent 1de0ae2 commit dbb994b

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

arch/loongarch/include/asm/irq.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,13 @@ void spurious_interrupt(void);
5050
#define NR_LEGACY_VECTORS 16
5151
#define IRQ_MATRIX_BITS NR_VECTORS
5252

53+
#define AVEC_IRQ_SHIFT 4
54+
#define AVEC_IRQ_BIT 8
55+
#define AVEC_IRQ_MASK GENMASK(AVEC_IRQ_BIT - 1, 0)
56+
#define AVEC_CPU_SHIFT 12
57+
#define AVEC_CPU_BIT 16
58+
#define AVEC_CPU_MASK GENMASK(AVEC_CPU_BIT - 1, 0)
59+
5360
#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
5461
void arch_trigger_cpumask_backtrace(const struct cpumask *mask, int exclude_cpu);
5562

drivers/irqchip/irq-loongarch-avec.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,9 @@ static void avecintc_compose_msi_msg(struct irq_data *d, struct msi_msg *msg)
209209
struct avecintc_data *adata = irq_data_get_irq_chip_data(d);
210210

211211
msg->address_hi = 0x0;
212-
msg->address_lo = (loongarch_avec.msi_base_addr | (adata->vec & 0xff) << 4)
213-
| ((cpu_logical_map(adata->cpu & 0xffff)) << 12);
212+
msg->address_lo = (loongarch_avec.msi_base_addr |
213+
(adata->vec & AVEC_IRQ_MASK) << AVEC_IRQ_SHIFT) |
214+
((cpu_logical_map(adata->cpu & AVEC_CPU_MASK)) << AVEC_CPU_SHIFT);
214215
msg->data = 0x0;
215216
}
216217

0 commit comments

Comments
 (0)