aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/irqchip/arm-gic-v3.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/irqchip/arm-gic-v3.h')
-rw-r--r--include/linux/irqchip/arm-gic-v3.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/include/linux/irqchip/arm-gic-v3.h b/include/linux/irqchip/arm-gic-v3.h
index cbb872c1b607..8bdbb5f29494 100644
--- a/include/linux/irqchip/arm-gic-v3.h
+++ b/include/linux/irqchip/arm-gic-v3.h
@@ -61,6 +61,16 @@
61#define GICD_CTLR_ENABLE_G1A (1U << 1) 61#define GICD_CTLR_ENABLE_G1A (1U << 1)
62#define GICD_CTLR_ENABLE_G1 (1U << 0) 62#define GICD_CTLR_ENABLE_G1 (1U << 0)
63 63
64#define GICD_IIDR_IMPLEMENTER_SHIFT 0
65#define GICD_IIDR_IMPLEMENTER_MASK (0xfff << GICD_IIDR_IMPLEMENTER_SHIFT)
66#define GICD_IIDR_REVISION_SHIFT 12
67#define GICD_IIDR_REVISION_MASK (0xf << GICD_IIDR_REVISION_SHIFT)
68#define GICD_IIDR_VARIANT_SHIFT 16
69#define GICD_IIDR_VARIANT_MASK (0xf << GICD_IIDR_VARIANT_SHIFT)
70#define GICD_IIDR_PRODUCT_ID_SHIFT 24
71#define GICD_IIDR_PRODUCT_ID_MASK (0xff << GICD_IIDR_PRODUCT_ID_SHIFT)
72
73
64/* 74/*
65 * In systems with a single security state (what we emulate in KVM) 75 * In systems with a single security state (what we emulate in KVM)
66 * the meaning of the interrupt group enable bits is slightly different 76 * the meaning of the interrupt group enable bits is slightly different
@@ -73,6 +83,7 @@
73#define GICD_TYPER_MBIS (1U << 16) 83#define GICD_TYPER_MBIS (1U << 16)
74 84
75#define GICD_TYPER_ID_BITS(typer) ((((typer) >> 19) & 0x1f) + 1) 85#define GICD_TYPER_ID_BITS(typer) ((((typer) >> 19) & 0x1f) + 1)
86#define GICD_TYPER_NUM_LPIS(typer) ((((typer) >> 11) & 0x1f) + 1)
76#define GICD_TYPER_IRQS(typer) ((((typer) & 0x1f) + 1) * 32) 87#define GICD_TYPER_IRQS(typer) ((((typer) & 0x1f) + 1) * 32)
77 88
78#define GICD_IROUTER_SPI_MODE_ONE (0U << 31) 89#define GICD_IROUTER_SPI_MODE_ONE (0U << 31)
@@ -576,8 +587,8 @@ struct rdists {
576 phys_addr_t phys_base; 587 phys_addr_t phys_base;
577 } __percpu *rdist; 588 } __percpu *rdist;
578 struct page *prop_page; 589 struct page *prop_page;
579 int id_bits;
580 u64 flags; 590 u64 flags;
591 u32 gicd_typer;
581 bool has_vlpis; 592 bool has_vlpis;
582 bool has_direct_lpi; 593 bool has_direct_lpi;
583}; 594};