diff options
| author | Paul Louvel <paul.louvel@bootlin.com> | 2026-07-08 12:15:14 +0200 |
|---|---|---|
| committer | Christophe Leroy (CS GROUP) <chleroy@kernel.org> | 2026-08-03 14:58:58 +0200 |
| commit | 7e47fe56415847732419ca8cef9307bf111dd368 (patch) | |
| tree | af48f10552ecaa41e62919d5d7e786176854ebcc | |
| parent | e460ef309f44b39480209970f1dd462f051d6f30 (diff) | |
soc: fsl: qe: Add chained_irq_{enter,exit}() calls in cascade handler
Wrap the cascade handler body with chained_irq_{enter,exit}() to
properly inform the parent IRQ chip that a chained interrupt is being
serviced.
Fixes: f0bcd784e1b76 ("soc: fsl: qe: Add an interrupt controller for QUICC Engine Ports")
Signed-off-by: Paul Louvel <paul.louvel@bootlin.com>
Cc: stable@kernel.org
Reviewed-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
Link: https://lore.kernel.org/r/20260708-qe-pic-gpios-v2-1-1972044cfbd1@bootlin.com
Signed-off-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
| -rw-r--r-- | drivers/soc/fsl/qe/qe_ports_ic.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/soc/fsl/qe/qe_ports_ic.c b/drivers/soc/fsl/qe/qe_ports_ic.c index 33ca1ddafe18..c3768c82a58c 100644 --- a/drivers/soc/fsl/qe/qe_ports_ic.c +++ b/drivers/soc/fsl/qe/qe_ports_ic.c @@ -6,6 +6,7 @@ */ #include <linux/irq.h> +#include <linux/irqchip/chained_irq.h> #include <linux/irqdomain.h> #include <linux/platform_device.h> @@ -82,7 +83,13 @@ static int qepic_get_irq(struct irq_desc *desc) static void qepic_cascade(struct irq_desc *desc) { + struct irq_chip *chip = irq_desc_get_chip(desc); + + chained_irq_enter(chip, desc); + generic_handle_irq(qepic_get_irq(desc)); + + chained_irq_exit(chip, desc); } static int qepic_host_map(struct irq_domain *h, unsigned int virq, irq_hw_number_t hw) |
