serial: timbuart: make sure last byte is sent when port is closed
authorRichard Röjfors <richard.rojfors@pelagicore.com>
Tue, 27 Apr 2010 21:16:34 +0000 (14:16 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 21 May 2010 16:34:29 +0000 (09:34 -0700)
commit24cd73a3942f3df214d7953f0cfd65d5085fa583
treeead53b3f9d40915b629fdcef2e2af89c21c66b0b
parent44051996230510ccb125cfa552d464950d1767b9
serial: timbuart: make sure last byte is sent when port is closed

Fix a problem in early versions of the FPGA IP.

In certain situations the IP reports that the FIFO is empty, but a byte is
still clocked out.  If a flush is done at that point the currently clocked
byte is canceled.

This causes incompatibilities with the upper layers when a port is closed,
it waits until the FIFO is empty and then closes the port.  During close
the FIFO is flushed -> the last byte is not sent properly.

Now the FIFO is only flushed if it is reported to be non-empty.  Which
makes the currently clocked out byte to finish.

[akpm@linux-foundation.org: fix build]
Signed-off-by: Richard Röjfors <richard.rojfors@pelagicore.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/serial/timbuart.c