irqchip/gic-v4.1: Implement the v4.1 flavour of VMAPP
authorMarc Zyngier <maz@kernel.org>
Tue, 24 Dec 2019 11:10:29 +0000 (11:10 +0000)
committerMarc Zyngier <maz@kernel.org>
Wed, 22 Jan 2020 14:22:19 +0000 (14:22 +0000)
commit64edfaa9a2342a3ce34f8cb982c2c2df84db4de3
tree323789ea3dc344ffe4ce4a550088fd244e7bbe52
parent5e5168461c22c8738d31d4ee12a5cbc2ab0aa440
irqchip/gic-v4.1: Implement the v4.1 flavour of VMAPP

The ITS VMAPP command gains some new fields with GICv4.1:
- a default doorbell, which allows a single doorbell to be used for
  all the VLPIs routed to a given VPE
- a pointer to the configuration table (instead of having it in a register
  that gets context switched)
- a flag indicating whether this is the first map or the last unmap for
  this particular VPE
- a flag indicating whether the pending table is known to be zeroed, or not

Plumb in the new fields in the VMAPP builder, and add the map/unmap
refcounting so that the ITS can do the right thing.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Zenghui Yu <yuzenghui@huawei.com>
Link: https://lore.kernel.org/r/20191224111055.11836-7-maz@kernel.org
drivers/irqchip/irq-gic-v3-its.c
include/linux/irqchip/arm-gic-v4.h