diff options
Diffstat (limited to 'include/linux/irqchip')
| -rw-r--r-- | include/linux/irqchip/arm-gic-v3.h | 4 | ||||
| -rw-r--r-- | include/linux/irqchip/arm-gic.h | 11 | 
2 files changed, 15 insertions, 0 deletions
| diff --git a/include/linux/irqchip/arm-gic-v3.h b/include/linux/irqchip/arm-gic-v3.h index dc493e0f0ff7..107eed475b94 100644 --- a/include/linux/irqchip/arm-gic-v3.h +++ b/include/linux/irqchip/arm-gic-v3.h @@ -204,6 +204,7 @@  #define GITS_BASER_NR_REGS		8  #define GITS_BASER_VALID		(1UL << 63) +#define GITS_BASER_INDIRECT		(1UL << 62)  #define GITS_BASER_nCnB			(0UL << 59)  #define GITS_BASER_nC			(1UL << 59)  #define GITS_BASER_RaWt			(2UL << 59) @@ -228,6 +229,7 @@  #define GITS_BASER_PAGE_SIZE_64K	(2UL << GITS_BASER_PAGE_SIZE_SHIFT)  #define GITS_BASER_PAGE_SIZE_MASK	(3UL << GITS_BASER_PAGE_SIZE_SHIFT)  #define GITS_BASER_PAGES_MAX		256 +#define GITS_BASER_PAGES_SHIFT		(0)  #define GITS_BASER_TYPE_NONE		0  #define GITS_BASER_TYPE_DEVICE		1 @@ -238,6 +240,8 @@  #define GITS_BASER_TYPE_RESERVED6	6  #define GITS_BASER_TYPE_RESERVED7	7 +#define GITS_LVL1_ENTRY_SIZE           (8UL) +  /*   * ITS commands   */ diff --git a/include/linux/irqchip/arm-gic.h b/include/linux/irqchip/arm-gic.h index fd051855539b..eafc965b3eb8 100644 --- a/include/linux/irqchip/arm-gic.h +++ b/include/linux/irqchip/arm-gic.h @@ -101,9 +101,14 @@  #include <linux/irqdomain.h>  struct device_node; +struct gic_chip_data;  void gic_cascade_irq(unsigned int gic_nr, unsigned int irq);  int gic_cpu_if_down(unsigned int gic_nr); +void gic_cpu_save(struct gic_chip_data *gic); +void gic_cpu_restore(struct gic_chip_data *gic); +void gic_dist_save(struct gic_chip_data *gic); +void gic_dist_restore(struct gic_chip_data *gic);  /*   * Subdrivers that need some preparatory work can initialize their @@ -112,6 +117,12 @@ int gic_cpu_if_down(unsigned int gic_nr);  int gic_of_init(struct device_node *node, struct device_node *parent);  /* + * Initialises and registers a non-root or child GIC chip. Memory for + * the gic_chip_data structure is dynamically allocated. + */ +int gic_of_init_child(struct device *dev, struct gic_chip_data **gic, int irq); + +/*   * Legacy platforms not converted to DT yet must use this to init   * their GIC   */ |