Patchwork serial: Add missing call to init UCC UART port timeout

login
register
mail settings
Submitter Chuck Meade
Date June 18, 2010, 1:22 p.m.
Message ID <4C1B7312.6080708@ThePTRGroup.com>
Download mbox | patch
Permalink /patch/56181/
State Accepted, archived
Delegated to: Kumar Gala
Headers show

Comments

Chuck Meade - June 18, 2010, 1:22 p.m.
From: Chuck Meade <chuck@ThePTRGroup.com>

The UCC UART driver is missing a call to uart_update_timeout().
Without this call, attempting to close the port after outputting large
amounts of data (i.e. using tty and uart buffering) results in long
timeouts before the port will actually be shut down.

For example, cat a large file to a UCC UART port.  With the current
driver, the port will stay open for 30 seconds after the last byte
of data is output.  But with this patch, the port is closed as
expected, just after the data has been output (tx fifos empty).

Signed-off-by: Chuck Meade <chuck@ThePTRGroup.com>
---
 drivers/serial/ucc_uart.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
Timur Tabi - June 21, 2010, 5:55 p.m.
On Fri, Jun 18, 2010 at 8:22 AM, Chuck Meade <chuck@theptrgroup.com> wrote:
> From: Chuck Meade <chuck@ThePTRGroup.com>
>
> The UCC UART driver is missing a call to uart_update_timeout().
> Without this call, attempting to close the port after outputting large
> amounts of data (i.e. using tty and uart buffering) results in long
> timeouts before the port will actually be shut down.
>
> For example, cat a large file to a UCC UART port.  With the current
> driver, the port will stay open for 30 seconds after the last byte
> of data is output.  But with this patch, the port is closed as
> expected, just after the data has been output (tx fifos empty).
>
> Signed-off-by: Chuck Meade <chuck@ThePTRGroup.com>

Acked-by: Timur Tabi <timur@freescale.com>
Kumar Gala - Nov. 24, 2011, 8:25 a.m.
On Jun 18, 2010, at 8:22 AM, Chuck Meade wrote:

> From: Chuck Meade <chuck@ThePTRGroup.com>
> 
> The UCC UART driver is missing a call to uart_update_timeout().
> Without this call, attempting to close the port after outputting large
> amounts of data (i.e. using tty and uart buffering) results in long
> timeouts before the port will actually be shut down.
> 
> For example, cat a large file to a UCC UART port.  With the current
> driver, the port will stay open for 30 seconds after the last byte
> of data is output.  But with this patch, the port is closed as
> expected, just after the data has been output (tx fifos empty).
> 
> Signed-off-by: Chuck Meade <chuck@ThePTRGroup.com>
> ---
> drivers/serial/ucc_uart.c |    3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)

applied to next

- k

Patch

diff --git a/drivers/serial/ucc_uart.c b/drivers/serial/ucc_uart.c
index 907b06f..a136030 100644
--- a/drivers/serial/ucc_uart.c
+++ b/drivers/serial/ucc_uart.c
@@ -961,6 +961,9 @@  static void qe_uart_set_termios(struct uart_port *port,
 	/* Do we really need a spinlock here? */
 	spin_lock_irqsave(&port->lock, flags);

+	/* Update the per-port timeout. */
+	uart_update_timeout(port, termios->c_cflag, baud);
+
 	out_be16(&uccp->upsmr, upsmr);
 	if (soft_uart) {
 		out_be16(&uccup->supsmr, supsmr);