summaryrefslogtreecommitdiff
path: root/packages/linux/linux-2.6.18/add-flush_buffer-operation-to-uart_ops.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/linux/linux-2.6.18/add-flush_buffer-operation-to-uart_ops.patch')
-rw-r--r--packages/linux/linux-2.6.18/add-flush_buffer-operation-to-uart_ops.patch71
1 files changed, 0 insertions, 71 deletions
diff --git a/packages/linux/linux-2.6.18/add-flush_buffer-operation-to-uart_ops.patch b/packages/linux/linux-2.6.18/add-flush_buffer-operation-to-uart_ops.patch
deleted file mode 100644
index 0c9b919900..0000000000
--- a/packages/linux/linux-2.6.18/add-flush_buffer-operation-to-uart_ops.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From nobody Mon Sep 17 00:00:00 2001
-From: HÃ¥vard Skinnemoen <hskinnemoen@atmel.com>
-Date: Thu Feb 2 15:48:50 2006 +0100
-Subject: [PATCH] Add flush_buffer() operation to uart_ops
-
-Serial drivers using DMA (like the Atmel USART3 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.
-
----
-
- Documentation/serial/driver | 11 +++++++++++
- drivers/serial/serial_core.c | 2 ++
- include/linux/serial_core.h | 1 +
- 3 files changed, 14 insertions(+)
-
-Index: linux-2.6.16-avr32/Documentation/serial/driver
-===================================================================
---- linux-2.6.16-avr32.orig/Documentation/serial/driver 2006-03-20 06:53:29.000000000 +0100
-+++ linux-2.6.16-avr32/Documentation/serial/driver 2006-04-03 18:57:11.000000000 +0200
-@@ -186,6 +186,17 @@ hardware.
- Locking: port_sem taken.
- Interrupts: caller dependent.
-
-+ flush_buffer(port)
-+ Flush any write buffers, reset any DMA state and stop any
-+ ongoing DMA transfers.
-+
-+ This will be called whenever the port->info->xmit circular
-+ buffer is cleared.
-+
-+ Locking: port->lock taken.
-+ Interrupts: locally disabled.
-+ This call must not sleep
-+
- set_termios(port,termios,oldtermios)
- Change the port parameters, including word length, parity, stop
- bits. Update read_status_mask and ignore_status_mask to indicate
-Index: linux-2.6.16-avr32/drivers/serial/serial_core.c
-===================================================================
---- linux-2.6.16-avr32.orig/drivers/serial/serial_core.c 2006-03-20 06:53:29.000000000 +0100
-+++ linux-2.6.16-avr32/drivers/serial/serial_core.c 2006-04-03 18:57:11.000000000 +0200
-@@ -556,6 +556,8 @@ static void uart_flush_buffer(struct tty
-
- spin_lock_irqsave(&port->lock, flags);
- uart_circ_clear(&state->info->xmit);
-+ if (port->ops->flush_buffer)
-+ port->ops->flush_buffer(port);
- spin_unlock_irqrestore(&port->lock, flags);
- tty_wakeup(tty);
- }
-Index: linux-2.6.16-avr32/include/linux/serial_core.h
-===================================================================
---- linux-2.6.16-avr32.orig/include/linux/serial_core.h 2006-03-20 06:53:29.000000000 +0100
-+++ linux-2.6.16-avr32/include/linux/serial_core.h 2006-04-03 18:57:11.000000000 +0200
-@@ -164,6 +164,7 @@ struct uart_ops {
- void (*break_ctl)(struct uart_port *, int ctl);
- int (*startup)(struct uart_port *);
- void (*shutdown)(struct uart_port *);
-+ void (*flush_buffer)(struct uart_port *);
- void (*set_termios)(struct uart_port *, struct termios *new,
- struct termios *old);
- void (*pm)(struct uart_port *, unsigned int state,