|
@@ -17,33 +17,6 @@
|
|
|
|
|
|
#include "generic.h"
|
|
|
|
|
|
-static void ns9xxx_ack_irq_timer(unsigned int irq)
|
|
|
-{
|
|
|
- u32 tc = SYS_TC(irq - IRQ_TIMER0);
|
|
|
-
|
|
|
- /*
|
|
|
- * If the timer is programmed to halt on terminal count, the
|
|
|
- * timer must be disabled before clearing the interrupt.
|
|
|
- */
|
|
|
- if (REGGET(tc, SYS_TCx, REN) == 0) {
|
|
|
- REGSET(tc, SYS_TCx, TEN, DIS);
|
|
|
- SYS_TC(irq - IRQ_TIMER0) = tc;
|
|
|
- }
|
|
|
-
|
|
|
- REGSET(tc, SYS_TCx, INTC, SET);
|
|
|
- SYS_TC(irq - IRQ_TIMER0) = tc;
|
|
|
-
|
|
|
- REGSET(tc, SYS_TCx, INTC, UNSET);
|
|
|
- SYS_TC(irq - IRQ_TIMER0) = tc;
|
|
|
-}
|
|
|
-
|
|
|
-static void (*ns9xxx_ack_irq_functions[NR_IRQS])(unsigned int) = {
|
|
|
- [IRQ_TIMER0] = ns9xxx_ack_irq_timer,
|
|
|
- [IRQ_TIMER1] = ns9xxx_ack_irq_timer,
|
|
|
- [IRQ_TIMER2] = ns9xxx_ack_irq_timer,
|
|
|
- [IRQ_TIMER3] = ns9xxx_ack_irq_timer,
|
|
|
-};
|
|
|
-
|
|
|
static void ns9xxx_mask_irq(unsigned int irq)
|
|
|
{
|
|
|
/* XXX: better use cpp symbols */
|
|
@@ -52,12 +25,6 @@ static void ns9xxx_mask_irq(unsigned int irq)
|
|
|
|
|
|
static void ns9xxx_ack_irq(unsigned int irq)
|
|
|
{
|
|
|
- if (!ns9xxx_ack_irq_functions[irq]) {
|
|
|
- printk(KERN_ERR "no ack function for irq %u\n", irq);
|
|
|
- BUG();
|
|
|
- }
|
|
|
-
|
|
|
- ns9xxx_ack_irq_functions[irq](irq);
|
|
|
SYS_ISRADDR = 0;
|
|
|
}
|
|
|
|