aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/s3c24xx/patches/0059-gta01-dehang-printk.patch.patch
blob: 826abf3757311487d890372c96619416f85eadb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
From 2e7d18a213b94e4aeded7f35b7cd0d02b9b661cd Mon Sep 17 00:00:00 2001
From: mokopatches <mokopatches@openmoko.org>
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