diff options
Diffstat (limited to 'drivers/serial/sunsu.c')
-rw-r--r-- | drivers/serial/sunsu.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c index 4ee4167c662f..170d3d68c8f0 100644 --- a/drivers/serial/sunsu.c +++ b/drivers/serial/sunsu.c | |||
@@ -1329,11 +1329,9 @@ static void sunsu_console_write(struct console *co, const char *s, | |||
1329 | */ | 1329 | */ |
1330 | static int __init sunsu_console_setup(struct console *co, char *options) | 1330 | static int __init sunsu_console_setup(struct console *co, char *options) |
1331 | { | 1331 | { |
1332 | static struct ktermios dummy; | ||
1333 | struct ktermios termios; | ||
1332 | struct uart_port *port; | 1334 | struct uart_port *port; |
1333 | int baud = 9600; | ||
1334 | int bits = 8; | ||
1335 | int parity = 'n'; | ||
1336 | int flow = 'n'; | ||
1337 | 1335 | ||
1338 | printk("Console: ttyS%d (SU)\n", | 1336 | printk("Console: ttyS%d (SU)\n", |
1339 | (sunsu_reg.minor - 64) + co->index); | 1337 | (sunsu_reg.minor - 64) + co->index); |
@@ -1352,10 +1350,15 @@ static int __init sunsu_console_setup(struct console *co, char *options) | |||
1352 | */ | 1350 | */ |
1353 | spin_lock_init(&port->lock); | 1351 | spin_lock_init(&port->lock); |
1354 | 1352 | ||
1355 | if (options) | 1353 | /* Get firmware console settings. */ |
1356 | uart_parse_options(options, &baud, &parity, &bits, &flow); | 1354 | sunserial_console_termios(co, to_of_device(port->dev)->node); |
1357 | 1355 | ||
1358 | return uart_set_options(port, co, baud, parity, bits, flow); | 1356 | memset(&termios, 0, sizeof(struct ktermios)); |
1357 | termios.c_cflag = co->cflag; | ||
1358 | port->mctrl |= TIOCM_DTR; | ||
1359 | port->ops->set_termios(port, &termios, &dummy); | ||
1360 | |||
1361 | return 0; | ||
1359 | } | 1362 | } |
1360 | 1363 | ||
1361 | static struct console sunsu_console = { | 1364 | static struct console sunsu_console = { |