aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/irqchip/irq-gic.c6
-rw-r--r--include/linux/irqchip/arm-gic.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index ee7c50312066..d0e948084eaf 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -453,6 +453,12 @@ static void gic_cpu_init(struct gic_chip_data *gic)
453 writel_relaxed(1, base + GIC_CPU_CTRL); 453 writel_relaxed(1, base + GIC_CPU_CTRL);
454} 454}
455 455
456void gic_cpu_if_down(void)
457{
458 void __iomem *cpu_base = gic_data_cpu_base(&gic_data[0]);
459 writel_relaxed(0, cpu_base + GIC_CPU_CTRL);
460}
461
456#ifdef CONFIG_CPU_PM 462#ifdef CONFIG_CPU_PM
457/* 463/*
458 * Saves the GIC distributor registers during suspend or idle. Must be called 464 * Saves the GIC distributor registers during suspend or idle. Must be called
diff --git a/include/linux/irqchip/arm-gic.h b/include/linux/irqchip/arm-gic.h
index 3e203eb23cc7..0e5d9ecdb2b6 100644
--- a/include/linux/irqchip/arm-gic.h
+++ b/include/linux/irqchip/arm-gic.h
@@ -66,6 +66,7 @@ extern struct irq_chip gic_arch_extn;
66void gic_init_bases(unsigned int, int, void __iomem *, void __iomem *, 66void gic_init_bases(unsigned int, int, void __iomem *, void __iomem *,
67 u32 offset, struct device_node *); 67 u32 offset, struct device_node *);
68void gic_cascade_irq(unsigned int gic_nr, unsigned int irq); 68void gic_cascade_irq(unsigned int gic_nr, unsigned int irq);
69void gic_cpu_if_down(void);
69 70
70static inline void gic_init(unsigned int nr, int start, 71static inline void gic_init(unsigned int nr, int start,
71 void __iomem *dist , void __iomem *cpu) 72 void __iomem *dist , void __iomem *cpu)