summaryrefslogtreecommitdiffstats
path: root/drivers/irqchip/irq-mmp.c
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2019-08-22 11:26:32 +0200
committerMarc Zyngier <maz@kernel.org>2019-08-30 16:23:30 +0200
commit2178add02238f8352f5b3294a79f4763183aade6 (patch)
tree3c60249daabfd4857a26585c72e89767d518eb43 /drivers/irqchip/irq-mmp.c
parentirqchip/mmp: Mask off interrupts from other cores (diff)
downloadlinux-2178add02238f8352f5b3294a79f4763183aade6.tar.xz
linux-2178add02238f8352f5b3294a79f4763183aade6.zip
irqchip/mmp: Coexist with GIC root IRQ controller
On MMP3, the GIC can be set as a root IRQ interrupt controller. If the device tree indicated that GIC is enabled, avoid hooking up mmp2_handle_irq(). The interrupt muxes are still being used. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20190822092643.593488-10-lkundrak@v3.sk
Diffstat (limited to 'drivers/irqchip/irq-mmp.c')
-rw-r--r--drivers/irqchip/irq-mmp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/irqchip/irq-mmp.c b/drivers/irqchip/irq-mmp.c
index da290d8971e7..4a74ac7b7c42 100644
--- a/drivers/irqchip/irq-mmp.c
+++ b/drivers/irqchip/irq-mmp.c
@@ -468,7 +468,12 @@ static int __init mmp3_of_init(struct device_node *node,
icu_data[0].conf_disable = mmp3_conf.conf_disable;
icu_data[0].conf_mask = mmp3_conf.conf_mask;
icu_data[0].conf2_mask = mmp3_conf.conf2_mask;
- set_handle_irq(mmp2_handle_irq);
+
+ if (!parent) {
+ /* This is the main interrupt controller. */
+ set_handle_irq(mmp2_handle_irq);
+ }
+
max_icu_nr = 1;
return 0;
}