Subject: [PATCH 1/2] serial: Add flush_buffer() operation to uart_ops
authorHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
Wed, 16 Jul 2008 20:52:36 +0000 (21:52 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 21 Jul 2008 00:12:34 +0000 (17:12 -0700)
commit6bb0e3a59a089e23eecc0af3b6f6012b2a9affba
tree06790c1e5a3505b9d790506710d59d88c780f819
parent15648f154a8faea97cbe931e189cf0a57fd066f4
Subject: [PATCH 1/2] serial: Add flush_buffer() operation to uart_ops

Serial drivers using DMA (like the atmel_serial driver) tend to get very
confused when the xmit buffer is flushed and nobody told them.  They
also tend to spew a lot of garbage since the DMA engine keeps running
after the buffer is flushed and possibly refilled with unrelated data.

This patch adds a new flush_buffer operation to the uart_ops struct,
along with a call to it from uart_flush_buffer() right after the xmit
buffer has been cleared. The driver can implement this in order to
syncronize its internal DMA state with the xmit buffer when the buffer
is flushed.

Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Documentation/serial/driver
drivers/serial/serial_core.c
include/linux/serial_core.h