Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2015-05-26 22:27:02 +0300
committerCorinna Vinschen <corinna@vinschen.de>2015-05-27 14:30:20 +0300
commitaa26b784620268135cab52d77ffb39129cd1fb1f (patch)
treec8784a9129d7d498831f0f3c690c864f869a6f46
parent58e5719a0e448d0c5cd1b670d9a099655ecfa77c (diff)
or1k: UART also accept timeout interrupt
- The UART interrupt only handled receiver FIFO full interrupts, but we also want to handle timeout interrupts. * or1k/or1k_uart.c: Fix interrupts
-rw-r--r--libgloss/ChangeLog4
-rw-r--r--libgloss/or1k/or1k_uart.c8
2 files changed, 9 insertions, 3 deletions
diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog
index 77137f02b..6b3fe3c4e 100644
--- a/libgloss/ChangeLog
+++ b/libgloss/ChangeLog
@@ -1,5 +1,9 @@
2015-05-26 Stefan Wallentowitz <stefan.wallentowitz@tum.de>
+ * or1k/or1k_uart.c: Fix interrupts
+
+2015-05-26 Stefan Wallentowitz <stefan.wallentowitz@tum.de>
+
* or1k/timer.c: Properly set interrupt flags
2015-05-26 Stefan Wallentowitz <stefan.wallentowitz@tum.de>
diff --git a/libgloss/or1k/or1k_uart.c b/libgloss/or1k/or1k_uart.c
index e5b539af4..0a991e6ba 100644
--- a/libgloss/or1k/or1k_uart.c
+++ b/libgloss/or1k/or1k_uart.c
@@ -94,9 +94,11 @@ void _or1k_uart_interrupt_handler(uint32_t data)
{
uint8_t iir = REG8(IIR);
- // Check if this is a read fifo interrupt, bit 0 indicates pending
- // interrupt and the other bits are IIR_RDA
- if (!(iir & 0x1) || ((iir & 0xfe) != IIR_RDA)) {
+ // Check if this is a read fifo or timeout interrupt, bit 0
+ // indicates pending interrupt and the other bits are IIR_RDA
+ // or IIR_TO
+ if (!(iir & 0x1) || ((iir & 0xfe) != IIR_RDA) ||
+ ((iir & 0xfe) != IIR_TO)) {
return;
}