diff options
Diffstat (limited to 'arch/mips/loongson/common/irq.c')
-rw-r--r-- | arch/mips/loongson/common/irq.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/arch/mips/loongson/common/irq.c b/arch/mips/loongson/common/irq.c index 20e732831978..5897471dedca 100644 --- a/arch/mips/loongson/common/irq.c +++ b/arch/mips/loongson/common/irq.c | |||
@@ -21,19 +21,16 @@ void bonito_irqdispatch(void) | |||
21 | 21 | ||
22 | /* workaround the IO dma problem: let cpu looping to allow DMA finish */ | 22 | /* workaround the IO dma problem: let cpu looping to allow DMA finish */ |
23 | int_status = LOONGSON_INTISR; | 23 | int_status = LOONGSON_INTISR; |
24 | if (int_status & (1 << 10)) { | 24 | while (int_status & (1 << 10)) { |
25 | while (int_status & (1 << 10)) { | 25 | udelay(1); |
26 | udelay(1); | 26 | int_status = LOONGSON_INTISR; |
27 | int_status = LOONGSON_INTISR; | ||
28 | } | ||
29 | } | 27 | } |
30 | 28 | ||
31 | /* Get pending sources, masked by current enables */ | 29 | /* Get pending sources, masked by current enables */ |
32 | int_status = LOONGSON_INTISR & LOONGSON_INTEN; | 30 | int_status = LOONGSON_INTISR & LOONGSON_INTEN; |
33 | 31 | ||
34 | if (int_status != 0) { | 32 | if (int_status) { |
35 | i = __ffs(int_status); | 33 | i = __ffs(int_status); |
36 | int_status &= ~(1 << i); | ||
37 | do_IRQ(LOONGSON_IRQ_BASE + i); | 34 | do_IRQ(LOONGSON_IRQ_BASE + i); |
38 | } | 35 | } |
39 | } | 36 | } |
@@ -56,9 +53,6 @@ void __init arch_init_irq(void) | |||
56 | */ | 53 | */ |
57 | clear_c0_status(ST0_IM | ST0_BEV); | 54 | clear_c0_status(ST0_IM | ST0_BEV); |
58 | 55 | ||
59 | /* setting irq trigger mode */ | ||
60 | set_irq_trigger_mode(); | ||
61 | |||
62 | /* no steer */ | 56 | /* no steer */ |
63 | LOONGSON_INTSTEER = 0; | 57 | LOONGSON_INTSTEER = 0; |
64 | 58 | ||