Commit 7a5a4f97 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq fixes from Thomas Gleixner:
 "Three fixlets from the ARM SoC camp:
   - correct irqdomain initialization for atmel-aic
   - correct error handling for device tree parsing in bcm controllers"

* 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  irqchip: brcmstb-l2: Fix error handling of irq_of_parse_and_map
  irqchip: bcm7120-l2: Fix error handling of irq_of_parse_and_map
  irqchip: atmel-aic: Fix irqdomain initialization
parents ed02bfa4 d99ba446
...@@ -217,8 +217,9 @@ struct irq_domain *__init aic_common_of_init(struct device_node *node, ...@@ -217,8 +217,9 @@ struct irq_domain *__init aic_common_of_init(struct device_node *node,
} }
ret = irq_alloc_domain_generic_chips(domain, 32, 1, name, ret = irq_alloc_domain_generic_chips(domain, 32, 1, name,
handle_level_irq, 0, 0, handle_fasteoi_irq,
IRQCHIP_SKIP_SET_WAKE); IRQ_NOREQUEST | IRQ_NOPROBE |
IRQ_NOAUTOEN, 0, 0);
if (ret) if (ret)
goto err_domain_remove; goto err_domain_remove;
...@@ -230,7 +231,6 @@ struct irq_domain *__init aic_common_of_init(struct device_node *node, ...@@ -230,7 +231,6 @@ struct irq_domain *__init aic_common_of_init(struct device_node *node,
gc->unused = 0; gc->unused = 0;
gc->wake_enabled = ~0; gc->wake_enabled = ~0;
gc->chip_types[0].type = IRQ_TYPE_SENSE_MASK; gc->chip_types[0].type = IRQ_TYPE_SENSE_MASK;
gc->chip_types[0].handler = handle_fasteoi_irq;
gc->chip_types[0].chip.irq_eoi = irq_gc_eoi; gc->chip_types[0].chip.irq_eoi = irq_gc_eoi;
gc->chip_types[0].chip.irq_set_wake = irq_gc_set_wake; gc->chip_types[0].chip.irq_set_wake = irq_gc_set_wake;
gc->chip_types[0].chip.irq_shutdown = aic_common_shutdown; gc->chip_types[0].chip.irq_shutdown = aic_common_shutdown;
......
...@@ -101,9 +101,9 @@ static int bcm7120_l2_intc_init_one(struct device_node *dn, ...@@ -101,9 +101,9 @@ static int bcm7120_l2_intc_init_one(struct device_node *dn,
int parent_irq; int parent_irq;
parent_irq = irq_of_parse_and_map(dn, irq); parent_irq = irq_of_parse_and_map(dn, irq);
if (parent_irq < 0) { if (!parent_irq) {
pr_err("failed to map interrupt %d\n", irq); pr_err("failed to map interrupt %d\n", irq);
return parent_irq; return -EINVAL;
} }
data->irq_map_mask |= be32_to_cpup(map_mask + irq); data->irq_map_mask |= be32_to_cpup(map_mask + irq);
......
...@@ -135,9 +135,9 @@ int __init brcmstb_l2_intc_of_init(struct device_node *np, ...@@ -135,9 +135,9 @@ int __init brcmstb_l2_intc_of_init(struct device_node *np,
__raw_writel(0xffffffff, data->base + CPU_CLEAR); __raw_writel(0xffffffff, data->base + CPU_CLEAR);
data->parent_irq = irq_of_parse_and_map(np, 0); data->parent_irq = irq_of_parse_and_map(np, 0);
if (data->parent_irq < 0) { if (!data->parent_irq) {
pr_err("failed to find parent interrupt\n"); pr_err("failed to find parent interrupt\n");
ret = data->parent_irq; ret = -EINVAL;
goto out_unmap; goto out_unmap;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment