Skip to content

Commit

Permalink
C6X: remove megamod-pic requirement on direct-mapped core pic
Browse files Browse the repository at this point in the history
The megamodule PIC cascades a number of interrupt sources into the core
priority PIC. The megamodule code depends on the core hardware interrupt
numbers being mapped one-to-one with regard to linux interrupt numbers.
This patch removes that dependence in order to pave the way for removing
the direct mapping in the core PIC code.

Signed-off-by: Mark Salter <msalter@redhat.com>
  • Loading branch information
Mark Salter committed Jul 19, 2012
1 parent 84a1caf commit b3f8956
Showing 1 changed file with 19 additions and 9 deletions.
28 changes: 19 additions & 9 deletions arch/c6x/platforms/megamod-pic.c
Original file line number Diff line number Diff line change
Expand Up @@ -243,27 +243,37 @@ static struct megamod_pic * __init init_megamod_pic(struct device_node *np)
* as their interrupt parent.
*/
for (i = 0; i < NR_COMBINERS; i++) {
struct irq_data *irq_data;
irq_hw_number_t hwirq;

irq = irq_of_parse_and_map(np, i);
if (irq == NO_IRQ)
continue;

irq_data = irq_get_irq_data(irq);
if (!irq_data) {
pr_err("%s: combiner-%d no irq_data for virq %d!\n",
np->full_name, i, irq);
continue;
}

hwirq = irq_data->hwirq;

/*
* We count on the core priority interrupts (4 - 15) being
* direct mapped. Check that device tree provided something
* in that range.
* Check that device tree provided something in the range
* of the core priority interrupts (4 - 15).
*/
if (irq < 4 || irq >= NR_PRIORITY_IRQS) {
pr_err("%s: combiner-%d virq %d out of range!\n",
np->full_name, i, irq);
if (hwirq < 4 || hwirq >= NR_PRIORITY_IRQS) {
pr_err("%s: combiner-%d core irq %ld out of range!\n",
np->full_name, i, hwirq);
continue;
}

/* record the mapping */
mapping[irq - 4] = i;
mapping[hwirq - 4] = i;

pr_debug("%s: combiner-%d cascading to virq %d\n",
np->full_name, i, irq);
pr_debug("%s: combiner-%d cascading to hwirq %ld\n",
np->full_name, i, hwirq);

cascade_data[i].pic = pic;
cascade_data[i].index = i;
Expand Down

0 comments on commit b3f8956

Please sign in to comment.