From 2e7d18a213b94e4aeded7f35b7cd0d02b9b661cd Mon Sep 17 00:00:00 2001 From: mokopatches Date: Fri, 25 Jul 2008 23:04:37 +0100 Subject: [PATCH] gta01-dehang-printk.patch This is a temporary work-around Mike Westerhof for this bug: http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=788 See also http://lists.openmoko.org/pipermail/openmoko-kernel/2008-February/000804.html (It's the 2nd option.) We may settle on a different solution in the future, depending on feedback from upstream. --- drivers/serial/s3c2410.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/drivers/serial/s3c2410.c b/drivers/serial/s3c2410.c index 7117110..bd87c79 100644 --- a/drivers/serial/s3c2410.c +++ b/drivers/serial/s3c2410.c @@ -1720,9 +1720,18 @@ static void s3c24xx_serial_console_putchar(struct uart_port *port, int ch) { unsigned int ufcon = rd_regl(cons_uart, S3C2410_UFCON); + unsigned int umcon = rd_regl(cons_uart, S3C2410_UMCON); + + /* If auto HW flow control enabled, temporarily turn it off */ + if (umcon & S3C2410_UMCOM_AFC) + wr_regl(port, S3C2410_UMCON, (umcon & !S3C2410_UMCOM_AFC)); + while (!s3c24xx_serial_console_txrdy(port, ufcon)) barrier(); wr_regb(cons_uart, S3C2410_UTXH, ch); + + if (umcon & S3C2410_UMCOM_AFC) + wr_regl(port, S3C2410_UMCON, umcon); } static void -- 1.5.6.3