summaryrefslogtreecommitdiff
path: root/drivers/serial
diff options
context:
space:
mode:
authorFabian Godehardt <fg@emlix.com>2009-06-11 17:37:19 +0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-11 19:51:08 +0400
commit977757311e50dc5d832c9fef34e7555411f7ccd8 (patch)
tree595e42d3a11c5067b70daba2b72e279b63009224 /drivers/serial
parent26bbb3ff1ff6163d6a233055766e26af8054a212 (diff)
downloadlinux-977757311e50dc5d832c9fef34e7555411f7ccd8.tar.xz
imx: serial: notify higher layers in case xmit IRQ was not called
upper layers, namely line discipline, need to be notified when transmission of more data is possible. For spurious cases, where IRQ handling does not supply notification for sure, it is given additionally here, when data has just been transmitted and space in the buffer will most probably be available. Signed-off-by: Fabian Godehardt <fg@emlix.com> Signed-off-by: Oskar Schirmer <os@emlix.com> Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/serial')
-rw-r--r--drivers/serial/imx.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c
index 6b8f12f4a705..49f2e12ba58d 100644
--- a/drivers/serial/imx.c
+++ b/drivers/serial/imx.c
@@ -308,6 +308,9 @@ static inline void imx_transmit_buffer(struct imx_port *sport)
break;
}
+ if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
+ uart_write_wakeup(&sport->port);
+
if (uart_circ_empty(xmit))
imx_stop_tx(&sport->port);
}