diff options
-rw-r--r-- | arch/mips/include/asm/mach-loongson/loongson.h | 8 | ||||
-rw-r--r-- | arch/mips/loongson/fuloong-2e/irq.c | 2 | ||||
-rw-r--r-- | arch/mips/loongson/lemote-2f/irq.c | 4 |
3 files changed, 10 insertions, 4 deletions
diff --git a/arch/mips/include/asm/mach-loongson/loongson.h b/arch/mips/include/asm/mach-loongson/loongson.h index 53ee881c675d..cb6985f24303 100644 --- a/arch/mips/include/asm/mach-loongson/loongson.h +++ b/arch/mips/include/asm/mach-loongson/loongson.h | |||
@@ -62,6 +62,14 @@ extern int mach_i8259_irq(void); | |||
62 | #define LOONGSON_IRQ_BASE 32 | 62 | #define LOONGSON_IRQ_BASE 32 |
63 | #define LOONGSON2_PERFCNT_IRQ (MIPS_CPU_IRQ_BASE + 6) /* cpu perf counter */ | 63 | #define LOONGSON2_PERFCNT_IRQ (MIPS_CPU_IRQ_BASE + 6) /* cpu perf counter */ |
64 | 64 | ||
65 | #include <linux/interrupt.h> | ||
66 | static inline void do_perfcnt_IRQ(void) | ||
67 | { | ||
68 | #if defined(CONFIG_OPROFILE) || defined(CONFIG_OPROFILE_MODULE) | ||
69 | do_IRQ(LOONGSON2_PERFCNT_IRQ); | ||
70 | #endif | ||
71 | } | ||
72 | |||
65 | #define LOONGSON_FLASH_BASE 0x1c000000 | 73 | #define LOONGSON_FLASH_BASE 0x1c000000 |
66 | #define LOONGSON_FLASH_SIZE 0x02000000 /* 32M */ | 74 | #define LOONGSON_FLASH_SIZE 0x02000000 /* 32M */ |
67 | #define LOONGSON_FLASH_TOP (LOONGSON_FLASH_BASE+LOONGSON_FLASH_SIZE-1) | 75 | #define LOONGSON_FLASH_TOP (LOONGSON_FLASH_BASE+LOONGSON_FLASH_SIZE-1) |
diff --git a/arch/mips/loongson/fuloong-2e/irq.c b/arch/mips/loongson/fuloong-2e/irq.c index 99e08c3db3f4..d61a04222b87 100644 --- a/arch/mips/loongson/fuloong-2e/irq.c +++ b/arch/mips/loongson/fuloong-2e/irq.c | |||
@@ -30,7 +30,7 @@ asmlinkage void mach_irq_dispatch(unsigned int pending) | |||
30 | if (pending & CAUSEF_IP7) | 30 | if (pending & CAUSEF_IP7) |
31 | do_IRQ(MIPS_CPU_IRQ_BASE + 7); | 31 | do_IRQ(MIPS_CPU_IRQ_BASE + 7); |
32 | else if (pending & CAUSEF_IP6) /* perf counter loverflow */ | 32 | else if (pending & CAUSEF_IP6) /* perf counter loverflow */ |
33 | do_IRQ(LOONGSON2_PERFCNT_IRQ); | 33 | do_perfcnt_IRQ(); |
34 | else if (pending & CAUSEF_IP5) | 34 | else if (pending & CAUSEF_IP5) |
35 | i8259_irqdispatch(); | 35 | i8259_irqdispatch(); |
36 | else if (pending & CAUSEF_IP2) | 36 | else if (pending & CAUSEF_IP2) |
diff --git a/arch/mips/loongson/lemote-2f/irq.c b/arch/mips/loongson/lemote-2f/irq.c index c6db7e7df963..71347d7030c5 100644 --- a/arch/mips/loongson/lemote-2f/irq.c +++ b/arch/mips/loongson/lemote-2f/irq.c | |||
@@ -79,9 +79,7 @@ void mach_irq_dispatch(unsigned int pending) | |||
79 | if (pending & CAUSEF_IP7) | 79 | if (pending & CAUSEF_IP7) |
80 | do_IRQ(LOONGSON_TIMER_IRQ); | 80 | do_IRQ(LOONGSON_TIMER_IRQ); |
81 | else if (pending & CAUSEF_IP6) { /* North Bridge, Perf counter */ | 81 | else if (pending & CAUSEF_IP6) { /* North Bridge, Perf counter */ |
82 | #if defined(CONFIG_OPROFILE) || defined(CONFIG_OPROFILE_MODULE) | 82 | do_perfcnt_IRQ(); |
83 | do_IRQ(LOONGSON2_PERFCNT_IRQ); | ||
84 | #endif | ||
85 | bonito_irqdispatch(); | 83 | bonito_irqdispatch(); |
86 | } else if (pending & CAUSEF_IP3) /* CPU UART */ | 84 | } else if (pending & CAUSEF_IP3) /* CPU UART */ |
87 | do_IRQ(LOONGSON_UART_IRQ); | 85 | do_IRQ(LOONGSON_UART_IRQ); |