software: remove unnecessary IRQ acks
authorSebastien Bourdeauducq <sebastien@milkymist.org>
Mon, 6 Feb 2012 23:07:25 +0000 (00:07 +0100)
committerSebastien Bourdeauducq <sebastien@milkymist.org>
Mon, 6 Feb 2012 23:07:25 +0000 (00:07 +0100)
software/include/base/irq.h
software/libbase/system.c
software/libbase/uart.c

index 37cf73fd0d4c35b5c651488c4ad0004c3c3eb628..33bd05bebe8bf5dd1f762cf43a13f7448e5dc851 100644 (file)
@@ -49,9 +49,4 @@ static inline unsigned int irq_pending(void)
        return pending;
 }
 
-static inline void irq_ack(unsigned int mask)
-{
-       __asm__ __volatile__("wcsr IP, %0" : : "r" (mask));
-}
-
 #endif /* __IRQ_H */
index 0edcb81804760c68160396c31c218d7f972dce00..b253c2142b9f1d2a15ebefb6fcaa66f9d3f39ef7 100644 (file)
@@ -44,7 +44,7 @@ __attribute__((noreturn)) void reboot(void)
 {
        uart_sync();
        irq_setmask(0);
-       irq_enable(0);
+       irq_setie(0);
        CSR_SYSTEM_ID = 1; /* Writing to CSR_SYSTEM_ID causes a system reset */
        while(1);
 }
@@ -61,7 +61,7 @@ __attribute__((noreturn)) void reconf(void)
 {
        uart_sync();
        irq_setmask(0);
-       irq_enable(0);
+       irq_setie(0);
        icap_write(0, 0xffff); /* dummy word */
        icap_write(0, 0xffff); /* dummy word */
        icap_write(0, 0xffff); /* dummy word */
index 8490bcdf84a6574e005cacce7dfb633c9c3ce5d0..248e5f527020c5e6e774de0e97188e5689ddf9c0 100644 (file)
@@ -62,7 +62,6 @@ void uart_isr(void)
        }
 
        CSR_UART_EV_PENDING = stat;
-       irq_ack(IRQ_UART);
 }
 
 /* Do not use in interrupt handlers! */
@@ -108,8 +107,6 @@ void uart_init(void)
        tx_consume = 0;
        tx_cts = 1;
 
-       irq_ack(IRQ_UART);
-
        /* ack any events */
        CSR_UART_EV_PENDING = CSR_UART_EV_PENDING;