MIPS: TXx9: Raise priority of interrupts for errors, timers, SIO
authorAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Tue, 19 Aug 2008 13:55:12 +0000 (22:55 +0900)
committerRalf Baechle <ralf@linux-mips.org>
Sat, 11 Oct 2008 15:18:43 +0000 (16:18 +0100)
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/txx9/generic/irq_tx4927.c
arch/mips/txx9/generic/irq_tx4938.c
include/asm-mips/txx9/tx4927.h

index cbea1fdde82b877adfe18e1341c2dc98ce375840..ad2870def8f1f7e1697205cfe2094f6a988ab7e8 100644 (file)
 
 void __init tx4927_irq_init(void)
 {
+       int i;
+
        mips_cpu_irq_init();
        txx9_irq_init(TX4927_IRC_REG & 0xfffffffffULL);
        set_irq_chained_handler(MIPS_CPU_IRQ_BASE + TX4927_IRC_INT,
                                handle_simple_irq);
+       /* raise priority for errors, timers, SIO */
+       txx9_irq_set_pri(TX4927_IR_ECCERR, 7);
+       txx9_irq_set_pri(TX4927_IR_WTOERR, 7);
+       txx9_irq_set_pri(TX4927_IR_PCIERR, 7);
+       txx9_irq_set_pri(TX4927_IR_PCIPME, 7);
+       for (i = 0; i < TX4927_NUM_IR_TMR; i++)
+               txx9_irq_set_pri(TX4927_IR_TMR(i), 6);
+       for (i = 0; i < TX4927_NUM_IR_SIO; i++)
+               txx9_irq_set_pri(TX4927_IR_SIO(i), 5);
 }
index 6eac684bf19042cf6eb9590463ae337362b35b4e..025ae11359a8183cadd81f1418127b45b215c395 100644 (file)
 
 void __init tx4938_irq_init(void)
 {
+       int i;
+
        mips_cpu_irq_init();
        txx9_irq_init(TX4938_IRC_REG & 0xfffffffffULL);
        set_irq_chained_handler(MIPS_CPU_IRQ_BASE + TX4938_IRC_INT,
                                handle_simple_irq);
+       /* raise priority for errors, timers, SIO */
+       txx9_irq_set_pri(TX4938_IR_ECCERR, 7);
+       txx9_irq_set_pri(TX4938_IR_WTOERR, 7);
+       txx9_irq_set_pri(TX4938_IR_PCIERR, 7);
+       txx9_irq_set_pri(TX4938_IR_PCIPME, 7);
+       for (i = 0; i < TX4938_NUM_IR_TMR; i++)
+               txx9_irq_set_pri(TX4938_IR_TMR(i), 6);
+       for (i = 0; i < TX4938_NUM_IR_SIO; i++)
+               txx9_irq_set_pri(TX4938_IR_SIO(i), 5);
 }
index 36a9241b0cacd3a6c9b7fa0d35a88af155eb84b8..7d813f1cb98d17ea8b19fa0e52ed7e2bda937a70 100644 (file)
 #define TX4927_SIO_REG(ch)     (TX4927_REG_BASE + 0xf300 + (ch) * 0x100)
 #define TX4927_PIO_REG         (TX4927_REG_BASE + 0xf500)
 
+#define TX4927_IR_ECCERR       0
+#define TX4927_IR_WTOERR       1
+#define TX4927_NUM_IR_INT      6
 #define TX4927_IR_INT(n)       (2 + (n))
+#define TX4927_NUM_IR_SIO      2
 #define TX4927_IR_SIO(n)       (8 + (n))
+#define TX4927_NUM_IR_DMA      4
+#define TX4927_IR_DMA(n)       (10 + (n))
+#define TX4927_IR_PIO          14
+#define TX4927_IR_PDMAC                15
 #define TX4927_IR_PCIC         16
 #define TX4927_NUM_IR_TMR      3
 #define TX4927_IR_TMR(n)       (17 + (n))
 #define TX4927_IR_PCIERR       22
+#define TX4927_IR_PCIPME       23
+#define TX4927_IR_ACLC         24
+#define TX4927_IR_ACLCPME      25
 #define TX4927_NUM_IR  32
 
 #define TX4927_IRC_INT 2       /* IP[2] in Status register */