diff options
author | Marc Zyngier <maz@kernel.org> | 2019-07-18 13:19:25 +0100 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2019-08-20 10:23:35 +0100 |
commit | 5f51f803826e4f4aedff415ddaf14efa707be5a7 (patch) | |
tree | 0687c293d66d687124ea8c0555ccaec9e233278a /include/linux/irqchip/arm-gic-v3.h | |
parent | 4b049063e0bcbfd302f6bf867de9d55a965d622e (diff) |
irqchip/gic-v3: Add EPPI range support
Expand the pre-existing PPI support to be able to deal with the
Extended PPI range (EPPI). This includes obtaining the number of PPIs
from each individual redistributor, and compute the minimum set
(just in case someone builds something really clever...).
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'include/linux/irqchip/arm-gic-v3.h')
-rw-r--r-- | include/linux/irqchip/arm-gic-v3.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/irqchip/arm-gic-v3.h b/include/linux/irqchip/arm-gic-v3.h index c523bf1faa55..9ec3349dee04 100644 --- a/include/linux/irqchip/arm-gic-v3.h +++ b/include/linux/irqchip/arm-gic-v3.h @@ -124,6 +124,18 @@ #define GICR_TYPER_CPU_NUMBER(r) (((r) >> 8) & 0xffff) +#define EPPI_BASE_INTID 1056 + +#define GICR_TYPER_NR_PPIS(r) \ + ({ \ + unsigned int __ppinum = ((r) >> 27) & 0x1f; \ + unsigned int __nr_ppis = 16; \ + if (__ppinum == 1 || __ppinum == 2) \ + __nr_ppis += __ppinum * 32; \ + \ + __nr_ppis; \ + }) + #define GICR_WAKER_ProcessorSleep (1U << 1) #define GICR_WAKER_ChildrenAsleep (1U << 2) |