Commit 98ce4721 authored by Ralf Baechle's avatar Ralf Baechle

[MIPS] IP32: More interrupt renumbering fixes.

Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 526a6770
...@@ -209,18 +209,18 @@ static unsigned long macepci_mask; ...@@ -209,18 +209,18 @@ static unsigned long macepci_mask;
static void enable_macepci_irq(unsigned int irq) static void enable_macepci_irq(unsigned int irq)
{ {
macepci_mask |= MACEPCI_CONTROL_INT(irq - 9); macepci_mask |= MACEPCI_CONTROL_INT(irq - MACEPCI_SCSI0_IRQ);
mace->pci.control = macepci_mask; mace->pci.control = macepci_mask;
crime_mask |= 1 << (irq - 1); crime_mask |= 1 << (irq - CRIME_IRQ_BASE);
crime->imask = crime_mask; crime->imask = crime_mask;
} }
static void disable_macepci_irq(unsigned int irq) static void disable_macepci_irq(unsigned int irq)
{ {
crime_mask &= ~(1 << (irq - 1)); crime_mask &= ~(1 << (irq - CRIME_IRQ_BASE));
crime->imask = crime_mask; crime->imask = crime_mask;
flush_crime_bus(); flush_crime_bus();
macepci_mask &= ~MACEPCI_CONTROL_INT(irq - 9); macepci_mask &= ~MACEPCI_CONTROL_INT(irq - MACEPCI_SCSI0_IRQ);
mace->pci.control = macepci_mask; mace->pci.control = macepci_mask;
flush_mace_bus(); flush_mace_bus();
} }
...@@ -299,7 +299,7 @@ static void enable_maceisa_irq(unsigned int irq) ...@@ -299,7 +299,7 @@ static void enable_maceisa_irq(unsigned int irq)
pr_debug("crime_int %08x enabled\n", crime_int); pr_debug("crime_int %08x enabled\n", crime_int);
crime_mask |= crime_int; crime_mask |= crime_int;
crime->imask = crime_mask; crime->imask = crime_mask;
maceisa_mask |= 1 << (irq - 33); maceisa_mask |= 1 << (irq - MACEISA_AUDIO_SW_IRQ);
mace->perif.ctrl.imask = maceisa_mask; mace->perif.ctrl.imask = maceisa_mask;
} }
...@@ -307,7 +307,7 @@ static void disable_maceisa_irq(unsigned int irq) ...@@ -307,7 +307,7 @@ static void disable_maceisa_irq(unsigned int irq)
{ {
unsigned int crime_int = 0; unsigned int crime_int = 0;
maceisa_mask &= ~(1 << (irq - 33)); maceisa_mask &= ~(1 << (irq - MACEISA_AUDIO_SW_IRQ));
if (!(maceisa_mask & MACEISA_AUDIO_INT)) if (!(maceisa_mask & MACEISA_AUDIO_INT))
crime_int |= MACE_AUDIO_INT; crime_int |= MACE_AUDIO_INT;
if (!(maceisa_mask & MACEISA_MISC_INT)) if (!(maceisa_mask & MACEISA_MISC_INT))
...@@ -331,7 +331,7 @@ static void mask_and_ack_maceisa_irq(unsigned int irq) ...@@ -331,7 +331,7 @@ static void mask_and_ack_maceisa_irq(unsigned int irq)
case MACEISA_SERIAL2_TDMAPR_IRQ: case MACEISA_SERIAL2_TDMAPR_IRQ:
/* edge triggered */ /* edge triggered */
mace_int = mace->perif.ctrl.istat; mace_int = mace->perif.ctrl.istat;
mace_int &= ~(1 << (irq - 33)); mace_int &= ~(1 << (irq - MACEISA_AUDIO_SW_IRQ));
mace->perif.ctrl.istat = mace_int; mace->perif.ctrl.istat = mace_int;
break; break;
} }
...@@ -359,13 +359,17 @@ static struct irq_chip ip32_maceisa_interrupt = { ...@@ -359,13 +359,17 @@ static struct irq_chip ip32_maceisa_interrupt = {
static void enable_mace_irq(unsigned int irq) static void enable_mace_irq(unsigned int irq)
{ {
crime_mask |= 1 << (irq - 1); unsigned int bit = irq - CRIME_IRQ_BASE;
crime_mask |= (1 << bit);
crime->imask = crime_mask; crime->imask = crime_mask;
} }
static void disable_mace_irq(unsigned int irq) static void disable_mace_irq(unsigned int irq)
{ {
crime_mask &= ~(1 << (irq - 1)); unsigned int bit = irq - CRIME_IRQ_BASE;
crime_mask &= ~(1 << bit);
crime->imask = crime_mask; crime->imask = crime_mask;
flush_crime_bus(); flush_crime_bus();
} }
...@@ -489,7 +493,7 @@ void __init arch_init_irq(void) ...@@ -489,7 +493,7 @@ void __init arch_init_irq(void)
mace->perif.ctrl.imask = 0; mace->perif.ctrl.imask = 0;
mips_cpu_irq_init(); mips_cpu_irq_init();
for (irq = MIPS_CPU_IRQ_BASE + 8; irq <= IP32_IRQ_MAX; irq++) { for (irq = CRIME_IRQ_BASE; irq <= IP32_IRQ_MAX; irq++) {
switch (irq) { switch (irq) {
case MACE_VID_IN1_IRQ ... MACE_PCI_BRIDGE_IRQ: case MACE_VID_IN1_IRQ ... MACE_PCI_BRIDGE_IRQ:
set_irq_chip(irq, &ip32_mace_interrupt); set_irq_chip(irq, &ip32_mace_interrupt);
......
...@@ -22,7 +22,7 @@ enum ip32_irq_no { ...@@ -22,7 +22,7 @@ enum ip32_irq_no {
* CPU interrupts are 0 ... 7 * CPU interrupts are 0 ... 7
*/ */
CRIME_IRQ_BASE = MIPS_CPU_IRQ_BASE, CRIME_IRQ_BASE = MIPS_CPU_IRQ_BASE + 8,
/* /*
* MACE * MACE
......
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