[PATCH] ppc32: fix: swallowed chars when booting.

Heiko Schocher hs at denx.de
Tue Nov 1 18:22:20 EST 2005


Hello,

Sorry, here comes the resubmit of the Patch because
corruption of whitespaces.

on a MPC8260 based Board, i lost some chars on the SMC2
Console, when booting the kernel. The following Patch
will fix this.

thanks
Heiko Schocher

[PATCH]     ppc32: fix: swallowed chars when booting.

In cpm_uart_set_termios(): wait until all chars are transmitted,
before writing the SMC Mode Register.

Signed-off-by: Heiko Schocher <hs at denx.de>

---
commit d2fcbaa6d5fcb3c1f80c98997dbcf6f6ee075f1b
tree d602dae10d2010ca1506c6a02e6a6db36ac86aca
parent ed28f96ac1960f30f818374d65be71d2fdf811b0
author Heiko Schocher <hs at pollux.(none)> Mon, 31 Oct 2005 12:11:55 +0100
committer Heiko Schocher <hs at pollux.(none)> Mon, 31 Oct 2005 12:11:55 +0100

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

diff --git a/drivers/serial/cpm_uart/cpm_uart_core.c
b/drivers/serial/cpm_uart/cpm_uart_core.c
index 25825f2..a452c38 100644
--- a/drivers/serial/cpm_uart/cpm_uart_core.c
+++ b/drivers/serial/cpm_uart/cpm_uart_core.c
@@ -553,6 +553,11 @@ static void cpm_uart_set_termios(struct
 		 * present.
 		 */
 		prev_mode = smcp->smc_smcmr;
+		/* Wait for all the BDs marked sent */
+		while(!cpm_uart_tx_empty(port)) {
+			set_current_state(TASK_UNINTERRUPTIBLE);
+			schedule_timeout(4);
+		}
 		smcp->smc_smcmr = smcr_mk_clen(bits) | cval | SMCMR_SM_UART;
 		smcp->smc_smcmr |= (prev_mode & (SMCMR_REN | SMCMR_TEN));
 	} else {



!-------------------------------------------------------------flip-






More information about the Linuxppc-dev mailing list