Skip to content

Commit 5e51684

Browse files
author
Marc Zyngier
committed
irqchip/gic-v4.1: VPE table (aka GICR_VPROPBASER) allocation
GICv4.1 defines a new VPE table that is potentially shared between both the ITSs and the redistributors, following complicated affinity rules. To make things more confusing, the programming of this table at the redistributor level is reusing the GICv4.0 GICR_VPROPBASER register for something completely different. The code flow is somewhat complexified by the need to respect the affinities required by the HW, meaning that tables can either be inherited from a previously discovered ITS or redistributor. Signed-off-by: Marc Zyngier <maz@kernel.org> Reviewed-by: Zenghui Yu <yuzenghui@huawei.com> Link: https://lore.kernel.org/r/20191224111055.11836-6-maz@kernel.org
1 parent f2d8340 commit 5e51684

File tree

4 files changed

+339
-7
lines changed

4 files changed

+339
-7
lines changed

arch/arm/include/asm/arch_gicv3.h

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#ifndef __ASSEMBLY__
1111

1212
#include <linux/io.h>
13+
#include <linux/io-64-nonatomic-lo-hi.h>
1314
#include <asm/barrier.h>
1415
#include <asm/cacheflush.h>
1516
#include <asm/cp15.h>
@@ -327,6 +328,7 @@ static inline u64 __gic_readq_nonatomic(const volatile void __iomem *addr)
327328
/*
328329
* GITS_VPROPBASER - hi and lo bits may be accessed independently.
329330
*/
331+
#define gits_read_vpropbaser(c) __gic_readq_nonatomic(c)
330332
#define gits_write_vpropbaser(v, c) __gic_writeq_nonatomic(v, c)
331333

332334
/*

arch/arm64/include/asm/arch_gicv3.h

+1
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ static inline u32 gic_read_rpr(void)
141141
#define gicr_read_pendbaser(c) readq_relaxed(c)
142142

143143
#define gits_write_vpropbaser(v, c) writeq_relaxed(v, c)
144+
#define gits_read_vpropbaser(c) readq_relaxed(c)
144145

145146
#define gits_write_vpendbaser(v, c) writeq_relaxed(v, c)
146147
#define gits_read_vpendbaser(c) readq_relaxed(c)

0 commit comments

Comments
 (0)