diff options
Diffstat (limited to 'drivers/serial/sh-sci.c')
-rw-r--r-- | drivers/serial/sh-sci.c | 7 |
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) | |||
928 | static void sci_set_termios(struct uart_port *port, struct ktermios *termios, | 931 | static 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; |