summaryrefslogtreecommitdiff
path: root/arch/loongarch/include/asm/irq.h
diff options
context:
space:
mode:
authorJianmin Lv <lvjianmin@loongson.cn>2022-07-20 18:51:25 +0800
committerMarc Zyngier <maz@kernel.org>2022-07-20 12:09:20 +0100
commit2dfded47da329a0dd619144a6bb43aefc13a77ba (patch)
tree8235ef4476ba4560d5ab9d98a92ad211634ea23f /arch/loongarch/include/asm/irq.h
parentcd057667585411fbecc0c140727177d7d707c63a (diff)
downloadlwn-2dfded47da329a0dd619144a6bb43aefc13a77ba.tar.gz
lwn-2dfded47da329a0dd619144a6bb43aefc13a77ba.zip
LoongArch: Prepare to support multiple pch-pic and pch-msi irqdomain
For systems with two chipsets, there are two related pch-pic and pch-msi irqdomains, each of which has the same node id as its parent irqdomain. So we use a structure to mantain the relation of node and it's parent irqdomain as pch irqdomin, the 'pci_segment' field is only used to match the pci segment of a pci device when setting msi irqdomain for the device. struct acpi_vector_group { int node; int pci_segment; struct irq_domain *parent; }; The field 'pci_segment' and 'node' are initialized from MCFG, and the parent irqdomain driver will set field 'parent' by matching same 'node'. Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/1658314292-35346-7-git-send-email-lvjianmin@loongson.cn
Diffstat (limited to 'arch/loongarch/include/asm/irq.h')
-rw-r--r--arch/loongarch/include/asm/irq.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/loongarch/include/asm/irq.h b/arch/loongarch/include/asm/irq.h
index ace3ea6da72e..a2540d7c533d 100644
--- a/arch/loongarch/include/asm/irq.h
+++ b/arch/loongarch/include/asm/irq.h
@@ -48,6 +48,14 @@ void arch_trigger_cpumask_backtrace(const struct cpumask *mask, bool exclude_sel
#define MAX_IO_PICS 2
#define NR_IRQS (64 + (256 * MAX_IO_PICS))
+struct acpi_vector_group {
+ int node;
+ int pci_segment;
+ struct irq_domain *parent;
+};
+extern struct acpi_vector_group pch_group[MAX_IO_PICS];
+extern struct acpi_vector_group msi_group[MAX_IO_PICS];
+
#define CORES_PER_EIO_NODE 4
#define LOONGSON_CPU_UART0_VEC 10 /* CPU UART0 */