diff options
Diffstat (limited to 'arch/mips/ath79/irq.c')
-rw-r--r-- | arch/mips/ath79/irq.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/mips/ath79/irq.c b/arch/mips/ath79/irq.c index ac610d5fe3ba..1b073de44680 100644 --- a/arch/mips/ath79/irq.c +++ b/arch/mips/ath79/irq.c | |||
@@ -46,6 +46,15 @@ static void ath79_misc_irq_handler(unsigned int irq, struct irq_desc *desc) | |||
46 | else if (pending & MISC_INT_TIMER) | 46 | else if (pending & MISC_INT_TIMER) |
47 | generic_handle_irq(ATH79_MISC_IRQ_TIMER); | 47 | generic_handle_irq(ATH79_MISC_IRQ_TIMER); |
48 | 48 | ||
49 | else if (pending & MISC_INT_TIMER2) | ||
50 | generic_handle_irq(ATH79_MISC_IRQ_TIMER2); | ||
51 | |||
52 | else if (pending & MISC_INT_TIMER3) | ||
53 | generic_handle_irq(ATH79_MISC_IRQ_TIMER3); | ||
54 | |||
55 | else if (pending & MISC_INT_TIMER4) | ||
56 | generic_handle_irq(ATH79_MISC_IRQ_TIMER4); | ||
57 | |||
49 | else if (pending & MISC_INT_OHCI) | 58 | else if (pending & MISC_INT_OHCI) |
50 | generic_handle_irq(ATH79_MISC_IRQ_OHCI); | 59 | generic_handle_irq(ATH79_MISC_IRQ_OHCI); |
51 | 60 | ||
@@ -58,6 +67,9 @@ static void ath79_misc_irq_handler(unsigned int irq, struct irq_desc *desc) | |||
58 | else if (pending & MISC_INT_WDOG) | 67 | else if (pending & MISC_INT_WDOG) |
59 | generic_handle_irq(ATH79_MISC_IRQ_WDOG); | 68 | generic_handle_irq(ATH79_MISC_IRQ_WDOG); |
60 | 69 | ||
70 | else if (pending & MISC_INT_ETHSW) | ||
71 | generic_handle_irq(ATH79_MISC_IRQ_ETHSW); | ||
72 | |||
61 | else | 73 | else |
62 | spurious_interrupt(); | 74 | spurious_interrupt(); |
63 | } | 75 | } |
@@ -117,7 +129,7 @@ static void __init ath79_misc_irq_init(void) | |||
117 | 129 | ||
118 | if (soc_is_ar71xx() || soc_is_ar913x()) | 130 | if (soc_is_ar71xx() || soc_is_ar913x()) |
119 | ath79_misc_irq_chip.irq_mask_ack = ar71xx_misc_irq_mask; | 131 | ath79_misc_irq_chip.irq_mask_ack = ar71xx_misc_irq_mask; |
120 | else if (soc_is_ar724x()) | 132 | else if (soc_is_ar724x() || soc_is_ar933x()) |
121 | ath79_misc_irq_chip.irq_ack = ar724x_misc_irq_ack; | 133 | ath79_misc_irq_chip.irq_ack = ar724x_misc_irq_ack; |
122 | else | 134 | else |
123 | BUG(); | 135 | BUG(); |
@@ -174,6 +186,9 @@ void __init arch_init_irq(void) | |||
174 | } else if (soc_is_ar913x()) { | 186 | } else if (soc_is_ar913x()) { |
175 | ath79_ip2_flush_reg = AR913X_DDR_REG_FLUSH_WMAC; | 187 | ath79_ip2_flush_reg = AR913X_DDR_REG_FLUSH_WMAC; |
176 | ath79_ip3_flush_reg = AR913X_DDR_REG_FLUSH_USB; | 188 | ath79_ip3_flush_reg = AR913X_DDR_REG_FLUSH_USB; |
189 | } else if (soc_is_ar933x()) { | ||
190 | ath79_ip2_flush_reg = AR933X_DDR_REG_FLUSH_WMAC; | ||
191 | ath79_ip3_flush_reg = AR933X_DDR_REG_FLUSH_USB; | ||
177 | } else | 192 | } else |
178 | BUG(); | 193 | BUG(); |
179 | 194 | ||