Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -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,
		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;
+2 −2
Original line number Original line Diff line number Diff line
@@ -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);
+2 −2
Original line number Original line Diff line number Diff line
@@ -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;
	}
	}