linux-xiaomi-chiron/include/linux/irqchip
Marc Zyngier 20b3d54ecb irqchip/gic-v3-its: Add device proxy for VPE management if !DirectLpi
When we don't have the DirectLPI feature, we must work around the
architecture shortcomings to be able to perform the required
maintenance (interrupt masking, clearing and injection).

For this, we create a fake device whose sole purpose is to
provide a way to issue commands as if we were dealing with LPIs
coming from that device (while they actually originate from
the ITS). This fake device doesn't have LPIs allocated to it,
but instead uses the VPE LPIs.

Of course, this could be a real bottleneck, and a naive
implementation would require 6 commands to issue an invalidation.

Instead, let's allocate at least one event per physical CPU
(rounded up to the next power of 2), and opportunistically
map the VPE doorbell to an event. This doorbell will be mapped
until we roll over and need to reallocate this slot.

This ensures that most of the time, we only need 2 commands
to issue an INV, INT or CLEAR, making the performance a lot
better, given that we always issue a CLEAR on entry, and
an INV on each side of a trapped WFI.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2017-08-31 15:31:39 +01:00
..
arm-gic-common.h irqchip/gic-v3: Parse and export virtual GIC information 2016-05-03 12:54:21 +02:00
arm-gic-v3.h irqchip/gic-v3-its: Add VPE scheduling 2017-08-31 15:31:36 +01:00
arm-gic-v4.h irqchip/gic-v3-its: Add device proxy for VPE management if !DirectLpi 2017-08-31 15:31:39 +01:00
arm-gic.h KVM: arm/arm64: Fix isues with GICv2 on GICv3 migration 2017-05-24 09:44:07 +02:00
arm-vic.h irqchip: support cascaded VICs 2014-02-13 11:21:21 +01:00
chained_irq.h arm: Move chained_irq_(enter|exit) to a generic file 2013-03-26 16:11:43 +00:00
ingenic.h MIPS/IRQCHIP: Move Ingenic SoC intc driver to drivers/irqchip 2015-06-21 21:53:10 +02:00
irq-omap-intc.h irqchip: omap-intc: Remove unused legacy interface for omap2 2015-01-26 11:38:23 +01:00
irq-partition-percpu.h irqchip: Add per-cpu interrupt partitioning library 2016-05-02 13:42:51 +02:00
irq-sa11x0.h ARM: 8367/1: sa1100: prepare for moving irq driver to drivers/irqchip 2015-05-28 14:40:03 +01:00
metag-ext.h metag: Internal and external irqchips 2013-03-02 20:09:48 +00:00
metag.h metag: Internal and external irqchips 2013-03-02 20:09:48 +00:00
mips-gic.h Clocksource/mips-gic: Remove redundant non devicetree init 2017-04-20 14:56:59 +02:00
mmp.h ARM: mmp: avoid to include head file in mach-mmp 2013-08-24 17:44:45 +08:00
mxs.h ARM: mxs: move icoll driver into drivers/irqchip 2013-04-01 16:30:04 +08:00
versatile-fpga.h
xtensa-mx.h xtensa: add MX irqchip 2014-01-14 10:19:58 -08:00
xtensa-pic.h xtensa: move built-in PIC to drivers/irqchip 2014-01-14 10:19:56 -08:00