浏览代码

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>
Magnus Damm 17 年之前
父节点
当前提交
191d4437b9
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      arch/sh/kernel/early_printk.c

+ 3 - 3
arch/sh/kernel/early_printk.c

@@ -167,6 +167,7 @@ static void scif_sercon_init(char *s)
 	} while (!(status & SCxSR_TEND(port)));
 	} while (!(status & SCxSR_TEND(port)));
 
 
 	sci_out(port, SCSCR, 0);	 /* TE=0, RE=0 */
 	sci_out(port, SCSCR, 0);	 /* TE=0, RE=0 */
+	sci_out(port, SCFCR, SCFCR_RFRST | SCFCR_TFRST);
 	sci_out(port, SCSMR, 0);
 	sci_out(port, SCSMR, 0);
 
 
 	/* Set baud rate */
 	/* Set baud rate */
@@ -174,12 +175,11 @@ static void scif_sercon_init(char *s)
 		(32 * baud) - 1);
 		(32 * baud) - 1);
 	udelay((1000000+(baud-1)) / baud); /* Wait one bit interval */
 	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, SCSPTR, 0);
 	sci_out(port, SCxSR, 0x60);
 	sci_out(port, SCxSR, 0x60);
 	sci_out(port, SCLSR, 0);
 	sci_out(port, SCLSR, 0);
+
+	sci_out(port, SCFCR, 0);
 	sci_out(port, SCSCR, 0x30);	 /* TE=1, RE=1 */
 	sci_out(port, SCSCR, 0x30);	 /* TE=1, RE=1 */
 }
 }
 #endif /* defined(CONFIG_CPU_SUBTYPE_SH7720) */
 #endif /* defined(CONFIG_CPU_SUBTYPE_SH7720) */