Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts

When support for the level triggered interrupt controller flavor was
added with c0ca7262088e, we forgot to update the flags to be set to
contain IRQ_LEVEL. While the flow handler is correct, the output from
/proc/interrupts does not show such interrupts as being level triggered
when they are, correct that.

Fixes: c0ca7262088e ("irqchip/brcmstb-l2: Add support for the BCM7271 L2 controller")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221216230934.2478345-2-f.fainelli@gmail.com

authored by

Florian Fainelli and committed by
Marc Zyngier
94debe03 5dc4c995

+5 -1
+5 -1
drivers/irqchip/irq-brcmstb-l2.c
··· 161 161 *init_params) 162 162 { 163 163 unsigned int clr = IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN; 164 + unsigned int set = 0; 164 165 struct brcmstb_l2_intc_data *data; 165 166 struct irq_chip_type *ct; 166 167 int ret; ··· 209 208 if (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN)) 210 209 flags |= IRQ_GC_BE_IO; 211 210 211 + if (init_params->handler == handle_level_irq) 212 + set |= IRQ_LEVEL; 213 + 212 214 /* Allocate a single Generic IRQ chip for this node */ 213 215 ret = irq_alloc_domain_generic_chips(data->domain, 32, 1, 214 - np->full_name, init_params->handler, clr, 0, flags); 216 + np->full_name, init_params->handler, clr, set, flags); 215 217 if (ret) { 216 218 pr_err("failed to allocate generic irq chip\n"); 217 219 goto out_free_domain;