diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2014-06-27 19:18:14 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2014-06-27 19:18:14 -0400 |
| commit | 00ecd129e210b1b282a5c0b75a383dd0242f20a4 (patch) | |
| tree | 2168be1a01e7b69670dab6f596b8fb4728b53699 | |
| parent | 43a775916d63d1c822107b39987192ca5ced445c (diff) | |
| parent | 4f4366033945419b0c52118c29d3057d7c558765 (diff) | |
Merge branch 'irq/urgent' into irq/core
Reason: The next pull request depends on that
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
| -rw-r--r-- | drivers/irqchip/irq-armada-370-xp.c | 17 | ||||
| -rw-r--r-- | drivers/irqchip/irq-brcmstb-l2.c | 2 | ||||
| -rw-r--r-- | drivers/irqchip/spear-shirq.c | 2 |
3 files changed, 17 insertions, 4 deletions
diff --git a/drivers/irqchip/irq-armada-370-xp.c b/drivers/irqchip/irq-armada-370-xp.c index c887e6eebc41..574aba0eba4e 100644 --- a/drivers/irqchip/irq-armada-370-xp.c +++ b/drivers/irqchip/irq-armada-370-xp.c | |||
| @@ -334,6 +334,15 @@ static void armada_mpic_send_doorbell(const struct cpumask *mask, | |||
| 334 | 334 | ||
| 335 | static void armada_xp_mpic_smp_cpu_init(void) | 335 | static void armada_xp_mpic_smp_cpu_init(void) |
| 336 | { | 336 | { |
| 337 | u32 control; | ||
| 338 | int nr_irqs, i; | ||
| 339 | |||
| 340 | control = readl(main_int_base + ARMADA_370_XP_INT_CONTROL); | ||
| 341 | nr_irqs = (control >> 2) & 0x3ff; | ||
| 342 | |||
| 343 | for (i = 0; i < nr_irqs; i++) | ||
| 344 | writel(i, per_cpu_int_base + ARMADA_370_XP_INT_SET_MASK_OFFS); | ||
| 345 | |||
| 337 | /* Clear pending IPIs */ | 346 | /* Clear pending IPIs */ |
| 338 | writel(0, per_cpu_int_base + ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS); | 347 | writel(0, per_cpu_int_base + ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS); |
| 339 | 348 | ||
| @@ -474,7 +483,7 @@ static int __init armada_370_xp_mpic_of_init(struct device_node *node, | |||
| 474 | struct device_node *parent) | 483 | struct device_node *parent) |
| 475 | { | 484 | { |
| 476 | struct resource main_int_res, per_cpu_int_res; | 485 | struct resource main_int_res, per_cpu_int_res; |
| 477 | int parent_irq; | 486 | int parent_irq, nr_irqs, i; |
| 478 | u32 control; | 487 | u32 control; |
| 479 | 488 | ||
| 480 | BUG_ON(of_address_to_resource(node, 0, &main_int_res)); | 489 | BUG_ON(of_address_to_resource(node, 0, &main_int_res)); |
| @@ -496,9 +505,13 @@ static int __init armada_370_xp_mpic_of_init(struct device_node *node, | |||
| 496 | BUG_ON(!per_cpu_int_base); | 505 | BUG_ON(!per_cpu_int_base); |
| 497 | 506 | ||
| 498 | control = readl(main_int_base + ARMADA_370_XP_INT_CONTROL); | 507 | control = readl(main_int_base + ARMADA_370_XP_INT_CONTROL); |
| 508 | nr_irqs = (control >> 2) & 0x3ff; | ||
| 509 | |||
| 510 | for (i = 0; i < nr_irqs; i++) | ||
| 511 | writel(i, main_int_base + ARMADA_370_XP_INT_CLEAR_ENABLE_OFFS); | ||
| 499 | 512 | ||
| 500 | armada_370_xp_mpic_domain = | 513 | armada_370_xp_mpic_domain = |
| 501 | irq_domain_add_linear(node, (control >> 2) & 0x3ff, | 514 | irq_domain_add_linear(node, nr_irqs, |
| 502 | &armada_370_xp_mpic_irq_ops, NULL); | 515 | &armada_370_xp_mpic_irq_ops, NULL); |
| 503 | 516 | ||
| 504 | BUG_ON(!armada_370_xp_mpic_domain); | 517 | BUG_ON(!armada_370_xp_mpic_domain); |
diff --git a/drivers/irqchip/irq-brcmstb-l2.c b/drivers/irqchip/irq-brcmstb-l2.c index 8ee2a36d5840..c15c840987d2 100644 --- a/drivers/irqchip/irq-brcmstb-l2.c +++ b/drivers/irqchip/irq-brcmstb-l2.c | |||
| @@ -150,7 +150,7 @@ int __init brcmstb_l2_intc_of_init(struct device_node *np, | |||
| 150 | 150 | ||
| 151 | /* Allocate a single Generic IRQ chip for this node */ | 151 | /* Allocate a single Generic IRQ chip for this node */ |
| 152 | ret = irq_alloc_domain_generic_chips(data->domain, 32, 1, | 152 | ret = irq_alloc_domain_generic_chips(data->domain, 32, 1, |
| 153 | np->full_name, handle_level_irq, clr, 0, 0); | 153 | np->full_name, handle_edge_irq, clr, 0, 0); |
| 154 | if (ret) { | 154 | if (ret) { |
| 155 | pr_err("failed to allocate generic irq chip\n"); | 155 | pr_err("failed to allocate generic irq chip\n"); |
| 156 | goto out_free_domain; | 156 | goto out_free_domain; |
diff --git a/drivers/irqchip/spear-shirq.c b/drivers/irqchip/spear-shirq.c index 3fdda3a40269..6ce6bd3441bf 100644 --- a/drivers/irqchip/spear-shirq.c +++ b/drivers/irqchip/spear-shirq.c | |||
| @@ -125,7 +125,7 @@ static struct spear_shirq spear320_shirq_ras2 = { | |||
| 125 | }; | 125 | }; |
| 126 | 126 | ||
| 127 | static struct spear_shirq spear320_shirq_ras3 = { | 127 | static struct spear_shirq spear320_shirq_ras3 = { |
| 128 | .irq_nr = 3, | 128 | .irq_nr = 7, |
| 129 | .irq_bit_off = 0, | 129 | .irq_bit_off = 0, |
| 130 | .invalid_irq = 1, | 130 | .invalid_irq = 1, |
| 131 | .regs = { | 131 | .regs = { |
