Commit 2ad28e3e authored by Huang Shijie's avatar Huang Shijie Committed by Greg Kroah-Hartman

serial: imx: always wake up the processes in the TX callback

The current code only wakes up the processes when the circle
buffer has less data then the WAKEUP_CHARS.

But sometimes, the circle buffer may has data more then the WAKEUP_CHARS,
in such case, the processes will hang.

This patch makes it always wakes up the processes in the TX callback.
Signed-off-by: default avatarHuang Shijie <b32955@freescale.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c972d806
...@@ -496,8 +496,7 @@ static void dma_tx_callback(void *data) ...@@ -496,8 +496,7 @@ static void dma_tx_callback(void *data)
dev_dbg(sport->port.dev, "we finish the TX DMA.\n"); dev_dbg(sport->port.dev, "we finish the TX DMA.\n");
if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS) uart_write_wakeup(&sport->port);
uart_write_wakeup(&sport->port);
if (waitqueue_active(&sport->dma_wait)) { if (waitqueue_active(&sport->dma_wait)) {
wake_up(&sport->dma_wait); wake_up(&sport->dma_wait);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment