summaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel
diff options
context:
space:
mode:
authorMagnus Damm <magnus.damm@gmail.com>2008-04-23 14:16:06 +0200
committerPaul Mundt <lethal@linux-sh.org>2008-05-08 12:51:54 +0200
commit191d4437b9c028afee1a0568d9c7e6e0b264c703 (patch)
tree10e3a01b6a7a0cb35a8ec99d8b6b3cf8021f0bd6 /arch/sh/kernel
parentsh: drain and wait for early printk (diff)
downloadlinux-191d4437b9c028afee1a0568d9c7e6e0b264c703.tar.xz
linux-191d4437b9c028afee1a0568d9c7e6e0b264c703.zip
sh: reset hardware from early printk
Reset the transmitter and receiver when setting up early printk. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel')
-rw-r--r--arch/sh/kernel/early_printk.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/sh/kernel/early_printk.c b/arch/sh/kernel/early_printk.c
index 11b4c85999b7..6b7d166694e2 100644
--- a/arch/sh/kernel/early_printk.c
+++ b/arch/sh/kernel/early_printk.c
@@ -167,6 +167,7 @@ static void scif_sercon_init(char *s)
} while (!(status & SCxSR_TEND(port)));
sci_out(port, SCSCR, 0); /* TE=0, RE=0 */
+ sci_out(port, SCFCR, SCFCR_RFRST | SCFCR_TFRST);
sci_out(port, SCSMR, 0);
/* Set baud rate */
@@ -174,12 +175,11 @@ static void scif_sercon_init(char *s)
(32 * baud) - 1);
udelay((1000000+(baud-1)) / baud); /* Wait one bit interval */
- sci_out(port, SCFCR, 12);
- sci_out(port, SCFCR, 8);
-
sci_out(port, SCSPTR, 0);
sci_out(port, SCxSR, 0x60);
sci_out(port, SCLSR, 0);
+
+ sci_out(port, SCFCR, 0);
sci_out(port, SCSCR, 0x30); /* TE=1, RE=1 */
}
#endif /* defined(CONFIG_CPU_SUBTYPE_SH7720) */