diff options
Diffstat (limited to 'c/src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c')
-rw-r--r-- | c/src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/c/src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c b/c/src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c index 1ae1dbedce..b43d95c83d 100644 --- a/c/src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c +++ b/c/src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c @@ -1090,12 +1090,15 @@ m8xx_uart_write( size_t len ) { - while( (TxBd[minor]->status) & M8260_BD_READY ); + if (len > 0) { + while( (TxBd[minor]->status) & M8260_BD_READY ); + + rtems_cache_flush_multiple_data_lines( buf, len ); + TxBd[minor]->buffer = (char *) buf; + TxBd[minor]->length = len; + TxBd[minor]->status = M8260_BD_READY | M8260_BD_WRAP | M8260_BD_INTERRUPT; + } - rtems_cache_flush_multiple_data_lines( buf, len ); - TxBd[minor]->buffer = (char *) buf; - TxBd[minor]->length = len; - TxBd[minor]->status = M8260_BD_READY | M8260_BD_WRAP | M8260_BD_INTERRUPT; return 0; } |