diff options
author | Jianmin Lv <lvjianmin@loongson.cn> | 2022-07-20 18:51:25 +0800 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2022-07-20 12:09:20 +0100 |
commit | 2dfded47da329a0dd619144a6bb43aefc13a77ba (patch) | |
tree | 8235ef4476ba4560d5ab9d98a92ad211634ea23f /arch/loongarch/include/asm/irq.h | |
parent | cd057667585411fbecc0c140727177d7d707c63a (diff) | |
download | lwn-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.h | 8 |
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 */ |