[rtems commit] bsp/tms570: fixed sci driver freeze when closing terminal bug

Gedare Bloom gedare at rtems.org
Wed Nov 18 15:20:01 UTC 2015


Module:    rtems
Branch:    master
Commit:    7e18dd9d205a7affa37fbfc26faa4696f3b245a4
Changeset: http://git.rtems.org/rtems/commit/?id=7e18dd9d205a7affa37fbfc26faa4696f3b245a4

Author:    Premysl Houdek <kom541000 at gmail.com>
Date:      Thu Nov 12 23:11:29 2015 +0100

bsp/tms570: fixed sci driver freeze when closing terminal bug

tms570_sci_interrupt_last_close: do not wait for old data transmit.

Signed-off-by: Premysl Houdek <kom541000 at gmail.com>

---

 c/src/lib/libbsp/arm/tms570/console/tms570-sci.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/c/src/lib/libbsp/arm/tms570/console/tms570-sci.c b/c/src/lib/libbsp/arm/tms570/console/tms570-sci.c
index 54c1b69..a799a66 100644
--- a/c/src/lib/libbsp/arm/tms570/console/tms570-sci.c
+++ b/c/src/lib/libbsp/arm/tms570/console/tms570-sci.c
@@ -531,9 +531,11 @@ static void tms570_sci_interrupt_last_close(
   tms570_sci_disable_interrupts(ctx);
   rtems_termios_device_lock_release(base, &lock_context);
 
-  /* Flush device */
-  while ( ( ctx->regs->FLR & TMS570_SCI_FLR_TX_EMPTY ) > 0 ) {
-    ;/* Wait until all data has been sent */
+  if ( 0 /* for flush on close */ ) {
+    /* Flush device */
+    while ( ( ctx->regs->FLR & TMS570_SCI_FLR_TX_EMPTY ) == 0 ) {
+      ;/* Wait until all data has been sent */
+    }
   }
 
   /* uninstall ISR */




More information about the vc mailing list