aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/irqchip/irq-gic.c
diff options
context:
space:
mode:
authorJon Hunter <jonathanh@nvidia.com>2016-02-09 10:24:57 -0500
committerMarc Zyngier <marc.zyngier@arm.com>2016-02-11 05:20:02 -0500
commit389a00d3ad02a06b5d6d692cce76fed6a3dae8b4 (patch)
tree542435c6bdb04f0ffe0434773214be768e365394 /drivers/irqchip/irq-gic.c
parent7bf29d3af6807d2a97a8b7d4627104a8da9bcdcb (diff)
irqchip/gic: Only set the EOImodeNS bit for the root controller
EOImode1 is only used for the root controller and hence only the root controller uses the eoimode1 functions for handling interrupts. However, if the root controller supports EOImode1, then the EOImodeNS bit will be set for all GICs, enabling EOImode1. This is not what we want and this causes interrupts on non-root GICs to only be dropped in priority but never deactivated. Therefore, only set the EOImodeNS bit for the root controller. Acked-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'drivers/irqchip/irq-gic.c')
-rw-r--r--drivers/irqchip/irq-gic.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index db7b161b0295..8f9ebf714e2b 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -437,7 +437,7 @@ static void gic_cpu_if_up(struct gic_chip_data *gic)
437 u32 bypass = 0; 437 u32 bypass = 0;
438 u32 mode = 0; 438 u32 mode = 0;
439 439
440 if (static_key_true(&supports_deactivate)) 440 if (gic == &gic_data[0] && static_key_true(&supports_deactivate))
441 mode = GIC_CPU_CTRL_EOImodeNS; 441 mode = GIC_CPU_CTRL_EOImodeNS;
442 442
443 /* 443 /*