aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/libboard
diff options
context:
space:
mode:
authorKévin Redon <kredon@sysmocom.de>2018-07-07 14:51:35 +0200
committerKévin Redon <kredon@sysmocom.de>2018-07-07 14:51:35 +0200
commitfcf274355270b605fb11f6881855fec39410e314 (patch)
tree4775b2e9caa41b1bebd3f729642ed80a240ae140 /firmware/libboard
parentd44cb80bc59681259f14d4d9c768edf40f892304 (diff)
UART: make IRQ/ISR enabling simpler
Diffstat (limited to 'firmware/libboard')
-rw-r--r--firmware/libboard/common/source/uart_console.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/firmware/libboard/common/source/uart_console.c b/firmware/libboard/common/source/uart_console.c
index fe64922..9004197 100644
--- a/firmware/libboard/common/source/uart_console.c
+++ b/firmware/libboard/common/source/uart_console.c
@@ -150,16 +150,12 @@ extern void UART_PutChar( uint8_t c )
}
/* Only store input if buffer is not full, else drop it */
- bool trigger_isr = false;
- if (rbuf_is_empty(&uart_tx_buffer)) {
- trigger_isr = true;
- }
if (!rbuf_is_full(&uart_tx_buffer)) {
rbuf_write(&uart_tx_buffer, c);
- }
- if (trigger_isr) {
- pUart->UART_IER = UART_IER_TXRDY;
- CONSOLE_ISR();
+ if (!(pUart->UART_IMR & UART_IMR_TXRDY)) {
+ pUart->UART_IER = UART_IER_TXRDY;
+ CONSOLE_ISR();
+ }
}
}