aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/Kconfig1
-rw-r--r--arch/mips/lasat/interrupt.c8
-rw-r--r--arch/mips/pci/pci-lasat.c19
-rw-r--r--include/asm-mips/lasat/lasatint.h5
4 files changed, 20 insertions, 13 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index f921235239f9..235d4514e0a9 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -133,6 +133,7 @@ config LASAT
133 select DMA_NONCOHERENT 133 select DMA_NONCOHERENT
134 select SYS_HAS_EARLY_PRINTK 134 select SYS_HAS_EARLY_PRINTK
135 select HW_HAS_PCI 135 select HW_HAS_PCI
136 select IRQ_CPU
136 select PCI_GT64XXX_PCI0 137 select PCI_GT64XXX_PCI0
137 select MIPS_NILE4 138 select MIPS_NILE4
138 select R5000_CPU_SCACHE 139 select R5000_CPU_SCACHE
diff --git a/arch/mips/lasat/interrupt.c b/arch/mips/lasat/interrupt.c
index 5f35289bfff5..ba9692be3564 100644
--- a/arch/mips/lasat/interrupt.c
+++ b/arch/mips/lasat/interrupt.c
@@ -26,6 +26,7 @@
26#include <linux/kernel_stat.h> 26#include <linux/kernel_stat.h>
27 27
28#include <asm/bootinfo.h> 28#include <asm/bootinfo.h>
29#include <asm/irq_cpu.h>
29#include <asm/lasat/lasatint.h> 30#include <asm/lasat/lasatint.h>
30#include <asm/time.h> 31#include <asm/time.h>
31#include <asm/gdb-stub.h> 32#include <asm/gdb-stub.h>
@@ -88,7 +89,7 @@ asmlinkage void plat_irq_dispatch(void)
88 int irq; 89 int irq;
89 90
90 if (cause & CAUSEF_IP7) { /* R4000 count / compare IRQ */ 91 if (cause & CAUSEF_IP7) { /* R4000 count / compare IRQ */
91 ll_timer_interrupt(7); 92 do_IRQ(7);
92 return; 93 return;
93 } 94 }
94 95
@@ -96,7 +97,7 @@ asmlinkage void plat_irq_dispatch(void)
96 97
97 /* if int_status == 0, then the interrupt has already been cleared */ 98 /* if int_status == 0, then the interrupt has already been cleared */
98 if (int_status) { 99 if (int_status) {
99 irq = ls1bit32(int_status); 100 irq = LASATINT_BASE + ls1bit32(int_status);
100 101
101 do_IRQ(irq); 102 do_IRQ(irq);
102 } 103 }
@@ -125,6 +126,7 @@ void __init arch_init_irq(void)
125 panic("arch_init_irq: mips_machtype incorrect"); 126 panic("arch_init_irq: mips_machtype incorrect");
126 } 127 }
127 128
128 for (i = 0; i <= LASATINT_END; i++) 129 mips_cpu_irq_init();
130 for (i = LASATINT_BASE; i <= LASATINT_END; i++)
129 set_irq_chip_and_handler(i, &lasat_irq_type, handle_level_irq); 131 set_irq_chip_and_handler(i, &lasat_irq_type, handle_level_irq);
130} 132}
diff --git a/arch/mips/pci/pci-lasat.c b/arch/mips/pci/pci-lasat.c
index 5abd5c7119be..174f314933b5 100644
--- a/arch/mips/pci/pci-lasat.c
+++ b/arch/mips/pci/pci-lasat.c
@@ -10,6 +10,7 @@
10#include <linux/pci.h> 10#include <linux/pci.h>
11#include <linux/types.h> 11#include <linux/types.h>
12#include <asm/bootinfo.h> 12#include <asm/bootinfo.h>
13#include <asm/lasat/lasatint.h>
13 14
14extern struct pci_ops nile4_pci_ops; 15extern struct pci_ops nile4_pci_ops;
15extern struct pci_ops gt64xxx_pci0_ops; 16extern struct pci_ops gt64xxx_pci0_ops;
@@ -54,15 +55,15 @@ static int __init lasat_pci_setup(void)
54 55
55arch_initcall(lasat_pci_setup); 56arch_initcall(lasat_pci_setup);
56 57
57#define LASATINT_ETH1 0 58#define LASATINT_ETH1 (LASATINT_BASE + 0)
58#define LASATINT_ETH0 1 59#define LASATINT_ETH0 (LASATINT_BASE + 1)
59#define LASATINT_HDC 2 60#define LASATINT_HDC (LASATINT_BASE + 2)
60#define LASATINT_COMP 3 61#define LASATINT_COMP (LASATINT_BASE + 3)
61#define LASATINT_HDLC 4 62#define LASATINT_HDLC (LASATINT_BASE + 4)
62#define LASATINT_PCIA 5 63#define LASATINT_PCIA (LASATINT_BASE + 5)
63#define LASATINT_PCIB 6 64#define LASATINT_PCIB (LASATINT_BASE + 6)
64#define LASATINT_PCIC 7 65#define LASATINT_PCIC (LASATINT_BASE + 7)
65#define LASATINT_PCID 8 66#define LASATINT_PCID (LASATINT_BASE + 8)
66 67
67int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 68int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
68{ 69{
diff --git a/include/asm-mips/lasat/lasatint.h b/include/asm-mips/lasat/lasatint.h
index 1d4a52e12530..581dc45685a2 100644
--- a/include/asm-mips/lasat/lasatint.h
+++ b/include/asm-mips/lasat/lasatint.h
@@ -1,7 +1,10 @@
1#ifndef __ASM_LASAT_LASATINT_H 1#ifndef __ASM_LASAT_LASATINT_H
2#define __ASM_LASAT_LASATINT_H 2#define __ASM_LASAT_LASATINT_H
3 3
4#define LASATINT_END 16 4#include <linux/irq.h>
5
6#define LASATINT_BASE MIPS_CPU_IRQ_BASE
7#define LASATINT_END (LASATINT_BASE + 16)
5 8
6/* lasat 100 */ 9/* lasat 100 */
7#define LASAT_INT_STATUS_REG_100 (KSEG1ADDR(0x1c880000)) 10#define LASAT_INT_STATUS_REG_100 (KSEG1ADDR(0x1c880000))