summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/erc32
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-06-24 17:29:11 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-06-25 17:03:21 +0200
commite18db9f0cffcb143e5fdec27539efb417cb4ebf3 (patch)
tree804edba552541bea8d5ea5c38680903373bf6c27 /c/src/lib/libbsp/sparc/erc32
parentbsps/arm: Rename function (diff)
downloadrtems-e18db9f0cffcb143e5fdec27539efb417cb4ebf3.tar.bz2
termios: Update due to API changes
Termios notifies now the driver about an inactive transmit with the length argument set to zero.
Diffstat (limited to 'c/src/lib/libbsp/sparc/erc32')
-rw-r--r--c/src/lib/libbsp/sparc/erc32/console/erc32_console.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/c/src/lib/libbsp/sparc/erc32/console/erc32_console.c b/c/src/lib/libbsp/sparc/erc32/console/erc32_console.c
index 08606957d4..2acc72f156 100644
--- a/c/src/lib/libbsp/sparc/erc32/console/erc32_console.c
+++ b/c/src/lib/libbsp/sparc/erc32/console/erc32_console.c
@@ -149,28 +149,28 @@ static int erc32_console_first_open(int major, int minor, void *arg)
#if (CONSOLE_USE_INTERRUPTS)
static ssize_t erc32_console_write_support_int(int minor, const char *buf, size_t len)
{
- console_data *cd = &Console_Port_Data[minor];
- int k = 0;
+ if (len > 0) {
+ console_data *cd = &Console_Port_Data[minor];
+ int k = 0;
- if (minor == 0) { /* uart a */
- for (k = 0;
- k < len && (ERC32_MEC.UART_Status & ERC32_MEC_UART_STATUS_THEA); k ++) {
- ERC32_MEC.UART_Channel_A = (unsigned char)buf[k];
- }
- ERC32_Force_interrupt(ERC32_INTERRUPT_UART_A_RX_TX);
- } else { /* uart b */
- for (k = 0;
- k < len && (ERC32_MEC.UART_Status & ERC32_MEC_UART_STATUS_THEB); k ++) {
- ERC32_MEC.UART_Channel_B = (unsigned char)buf[k];
+ if (minor == 0) { /* uart a */
+ for (k = 0;
+ k < len && (ERC32_MEC.UART_Status & ERC32_MEC_UART_STATUS_THEA); k ++) {
+ ERC32_MEC.UART_Channel_A = (unsigned char)buf[k];
+ }
+ ERC32_Force_interrupt(ERC32_INTERRUPT_UART_A_RX_TX);
+ } else { /* uart b */
+ for (k = 0;
+ k < len && (ERC32_MEC.UART_Status & ERC32_MEC_UART_STATUS_THEB); k ++) {
+ ERC32_MEC.UART_Channel_B = (unsigned char)buf[k];
+ }
+ ERC32_Force_interrupt(ERC32_INTERRUPT_UART_B_RX_TX);
}
- ERC32_Force_interrupt(ERC32_INTERRUPT_UART_B_RX_TX);
- }
-
- if (len > 0) {
+
cd->pDeviceContext = (void *)k;
cd->bActive = true;
}
-
+
return 0;
}