diff options
author | Marc Zyngier <maz@kernel.org> | 2020-03-04 23:33:15 +0300 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2020-03-24 15:05:04 +0300 |
commit | 166cba71818cd49d7d815fdc6f97c63395e94fc5 (patch) | |
tree | 4902aeb2e20126837dc08f9f35609728c19e4e94 /include/linux/irqchip/arm-gic-v4.h | |
parent | 5e46a48413a6660955de7e56f9f364f2b890381c (diff) | |
download | linux-166cba71818cd49d7d815fdc6f97c63395e94fc5.tar.xz |
irqchip/gic-v4.1: Plumb skeletal VSGI irqchip
Since GICv4.1 has the capability to inject 16 SGIs into each VPE,
and that I'm keen not to invent too many specific interfaces to
manipulate these interrupts, let's pretend that each of these SGIs
is an actual Linux interrupt.
For that matter, let's introduce a minimal irqchip and irqdomain
setup that will get fleshed up in the following patches.
Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Zenghui Yu <yuzenghui@huawei.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Link: https://lore.kernel.org/r/20200304203330.4967-9-maz@kernel.org
Diffstat (limited to 'include/linux/irqchip/arm-gic-v4.h')
-rw-r--r-- | include/linux/irqchip/arm-gic-v4.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/include/linux/irqchip/arm-gic-v4.h b/include/linux/irqchip/arm-gic-v4.h index 439963f4c66a..44e8c19e3d56 100644 --- a/include/linux/irqchip/arm-gic-v4.h +++ b/include/linux/irqchip/arm-gic-v4.h @@ -49,6 +49,11 @@ struct its_vpe { }; /* GICv4.1 implementations */ struct { + struct { + u8 priority; + bool enabled; + bool group; + } sgi_config[16]; atomic_t vmapp_count; }; }; @@ -123,6 +128,8 @@ int its_unmap_vlpi(int irq); int its_prop_update_vlpi(int irq, u8 config, bool inv); struct irq_domain_ops; -int its_init_v4(struct irq_domain *domain, const struct irq_domain_ops *ops); +int its_init_v4(struct irq_domain *domain, + const struct irq_domain_ops *vpe_ops, + const struct irq_domain_ops *sgi_ops); #endif |