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 <maz@kernel.org>
This commit is contained in:
commit
a83bf176fe
@ -279,7 +279,8 @@ static int __init bcm7120_l2_intc_probe(struct device_node *dn,
|
||||
flags |= IRQ_GC_BE_IO;
|
||||
|
||||
ret = irq_alloc_domain_generic_chips(data->domain, IRQS_PER_WORD, 1,
|
||||
dn->full_name, handle_level_irq, clr, 0, flags);
|
||||
dn->full_name, handle_level_irq, clr,
|
||||
IRQ_LEVEL, flags);
|
||||
if (ret) {
|
||||
pr_err("failed to allocate generic irq chip\n");
|
||||
goto out_free_domain;
|
||||
|
@ -161,6 +161,7 @@ static int __init brcmstb_l2_intc_of_init(struct device_node *np,
|
||||
*init_params)
|
||||
{
|
||||
unsigned int clr = IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN;
|
||||
unsigned int set = 0;
|
||||
struct brcmstb_l2_intc_data *data;
|
||||
struct irq_chip_type *ct;
|
||||
int ret;
|
||||
@ -208,9 +209,12 @@ static int __init brcmstb_l2_intc_of_init(struct device_node *np,
|
||||
if (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN))
|
||||
flags |= IRQ_GC_BE_IO;
|
||||
|
||||
if (init_params->handler == handle_level_irq)
|
||||
set |= IRQ_LEVEL;
|
||||
|
||||
/* Allocate a single Generic IRQ chip for this node */
|
||||
ret = irq_alloc_domain_generic_chips(data->domain, 32, 1,
|
||||
np->full_name, init_params->handler, clr, 0, flags);
|
||||
np->full_name, init_params->handler, clr, set, flags);
|
||||
if (ret) {
|
||||
pr_err("failed to allocate generic irq chip\n");
|
||||
goto out_free_domain;
|
||||
|
Loading…
Reference in New Issue
Block a user