2006-02-07 15:00:33

by Kumar Gala

[permalink] [raw]
Subject: [PATCH] 8250 serial console update uart_8250_port ier

On some embedded PowerPC (MPC834x) systems an extra byte would some times be
required to flush data out of the fifo. serial8250_console_write() was updating
the IER in hardware withouth also updating the copy in uart_8250_port. This
causes issues functions like serial8250_start_tx() and __stop_tx() to misbehave.

Signed-off-by: Kumar Gala <[email protected]>

---
commit 0614711f0208f50e81d55283add8ae41bc332fc7
tree 1da4194744b9ca1fe59976c6ebffccfee40299eb
parent 45a38d42185df3e328e35e5167f2bfe181361db9
author Kumar Gala <[email protected]> Tue, 07 Feb 2006 08:51:26 -0600
committer Kumar Gala <[email protected]> Tue, 07 Feb 2006 08:51:26 -0600

drivers/serial/8250.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 179c1f0..b1fc97d 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -2229,6 +2229,7 @@ serial8250_console_write(struct console
* and restore the IER
*/
wait_for_xmitr(up, BOTH_EMPTY);
+ up->ier |= UART_IER_THRI;
serial_out(up, UART_IER, ier | UART_IER_THRI);
}



2006-02-07 15:12:13

by Kumar Gala

[permalink] [raw]
Subject: Re: [PATCH] 8250 serial console update uart_8250_port ier

Russell,

If you are ok with this can we make sure this gets to Linus for 2.6.16

thanks

- kumar

On Feb 7, 2006, at 8:52 AM, Kumar Gala wrote:

> On some embedded PowerPC (MPC834x) systems an extra byte would some
> times be
> required to flush data out of the fifo. serial8250_console_write()
> was updating
> the IER in hardware withouth also updating the copy in
> uart_8250_port. This
> causes issues functions like serial8250_start_tx() and __stop_tx()
> to misbehave.
>
> Signed-off-by: Kumar Gala <[email protected]>
>
> ---
> commit 0614711f0208f50e81d55283add8ae41bc332fc7
> tree 1da4194744b9ca1fe59976c6ebffccfee40299eb
> parent 45a38d42185df3e328e35e5167f2bfe181361db9
> author Kumar Gala <[email protected]> Tue, 07 Feb 2006
> 08:51:26 -0600
> committer Kumar Gala <[email protected]> Tue, 07 Feb 2006
> 08:51:26 -0600
>
> drivers/serial/8250.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
> index 179c1f0..b1fc97d 100644
> --- a/drivers/serial/8250.c
> +++ b/drivers/serial/8250.c
> @@ -2229,6 +2229,7 @@ serial8250_console_write(struct console
> * and restore the IER
> */
> wait_for_xmitr(up, BOTH_EMPTY);
> + up->ier |= UART_IER_THRI;
> serial_out(up, UART_IER, ier | UART_IER_THRI);
> }
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-
> kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2006-02-08 21:34:58

by Russell King

[permalink] [raw]
Subject: Re: [PATCH] 8250 serial console update uart_8250_port ier

On Tue, Feb 07, 2006 at 08:52:03AM -0600, Kumar Gala wrote:
> On some embedded PowerPC (MPC834x) systems an extra byte would some times be
> required to flush data out of the fifo. serial8250_console_write() was updating
> the IER in hardware withouth also updating the copy in uart_8250_port. This
> causes issues functions like serial8250_start_tx() and __stop_tx() to misbehave.

Applied, thanks.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core