Commit dbb994b4 authored by Song Gao's avatar Song Gao Committed by Huacai Chen
Browse files

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: default avatarSong Gao <gaosong@loongson.cn>
Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
parent 1de0ae21
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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);

+3 −2
Original line number Diff line number Diff line
@@ -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;
}