aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial/sh-sci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/serial/sh-sci.c')
-rw-r--r--drivers/serial/sh-sci.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c
index 66f52674ca0c..3a13e58e9c5d 100644
--- a/drivers/serial/sh-sci.c
+++ b/drivers/serial/sh-sci.c
@@ -79,6 +79,9 @@ struct sci_port {
79 struct timer_list break_timer; 79 struct timer_list break_timer;
80 int break_flag; 80 int break_flag;
81 81
82 /* SCSCR initialization */
83 unsigned int scscr;
84
82#ifdef CONFIG_HAVE_CLK 85#ifdef CONFIG_HAVE_CLK
83 /* Interface clock */ 86 /* Interface clock */
84 struct clk *iclk; 87 struct clk *iclk;
@@ -928,6 +931,7 @@ static void sci_shutdown(struct uart_port *port)
928static void sci_set_termios(struct uart_port *port, struct ktermios *termios, 931static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
929 struct ktermios *old) 932 struct ktermios *old)
930{ 933{
934 struct sci_port *s = to_sci_port(port);
931 unsigned int status, baud, smr_val; 935 unsigned int status, baud, smr_val;
932 int t = -1; 936 int t = -1;
933 937
@@ -972,7 +976,7 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
972 sci_init_pins(port, termios->c_cflag); 976 sci_init_pins(port, termios->c_cflag);
973 sci_out(port, SCFCR, (termios->c_cflag & CRTSCTS) ? SCFCR_MCE : 0); 977 sci_out(port, SCFCR, (termios->c_cflag & CRTSCTS) ? SCFCR_MCE : 0);
974 978
975 sci_out(port, SCSCR, SCSCR_INIT(port)); 979 sci_out(port, SCSCR, s->scscr);
976 980
977 if ((termios->c_cflag & CREAD) != 0) 981 if ((termios->c_cflag & CREAD) != 0)
978 sci_start_rx(port, 0); 982 sci_start_rx(port, 0);
@@ -1097,6 +1101,7 @@ static void __devinit sci_init_single(struct platform_device *dev,
1097 sci_port->port.mapbase = p->mapbase; 1101 sci_port->port.mapbase = p->mapbase;
1098 sci_port->port.membase = p->membase; 1102 sci_port->port.membase = p->membase;
1099 1103
1104 sci_port->scscr = p->scscr;
1100 sci_port->port.irq = p->irqs[SCIx_TXI_IRQ]; 1105 sci_port->port.irq = p->irqs[SCIx_TXI_IRQ];
1101 sci_port->port.flags = p->flags; 1106 sci_port->port.flags = p->flags;
1102 sci_port->port.dev = &dev->dev; 1107 sci_port->port.dev = &dev->dev;