Skip to content

Commit a83bf17

Browse files
author
Marc Zyngier
committed
Merge branch irq/bcm-l2-fixes into irq/irqchip-next
* irq/bcm-l2-fixes: : . : Broadcom L2 irqchip fixes for correct handling of level interrupts, : courtesy of Florian Fainelli. : . irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts Signed-off-by: Marc Zyngier <[email protected]>
2 parents 7135b35 + 13a157b commit a83bf17

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

drivers/irqchip/irq-bcm7120-l2.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,8 @@ static int __init bcm7120_l2_intc_probe(struct device_node *dn,
279279
flags |= IRQ_GC_BE_IO;
280280

281281
ret = irq_alloc_domain_generic_chips(data->domain, IRQS_PER_WORD, 1,
282-
dn->full_name, handle_level_irq, clr, 0, flags);
282+
dn->full_name, handle_level_irq, clr,
283+
IRQ_LEVEL, flags);
283284
if (ret) {
284285
pr_err("failed to allocate generic irq chip\n");
285286
goto out_free_domain;

drivers/irqchip/irq-brcmstb-l2.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ static int __init brcmstb_l2_intc_of_init(struct device_node *np,
161161
*init_params)
162162
{
163163
unsigned int clr = IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN;
164+
unsigned int set = 0;
164165
struct brcmstb_l2_intc_data *data;
165166
struct irq_chip_type *ct;
166167
int ret;
@@ -208,9 +209,12 @@ static int __init brcmstb_l2_intc_of_init(struct device_node *np,
208209
if (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN))
209210
flags |= IRQ_GC_BE_IO;
210211

212+
if (init_params->handler == handle_level_irq)
213+
set |= IRQ_LEVEL;
214+
211215
/* Allocate a single Generic IRQ chip for this node */
212216
ret = irq_alloc_domain_generic_chips(data->domain, 32, 1,
213-
np->full_name, init_params->handler, clr, 0, flags);
217+
np->full_name, init_params->handler, clr, set, flags);
214218
if (ret) {
215219
pr_err("failed to allocate generic irq chip\n");
216220
goto out_free_domain;

0 commit comments

Comments
 (0)