diff options
| -rw-r--r-- | drivers/serial/suncore.c | 19 | ||||
| -rw-r--r-- | drivers/serial/suncore.h | 2 | ||||
| -rw-r--r-- | drivers/serial/sunsab.c | 6 | ||||
| -rw-r--r-- | drivers/serial/sunsu.c | 3 | ||||
| -rw-r--r-- | drivers/serial/sunzilog.c | 6 |
5 files changed, 21 insertions, 15 deletions
diff --git a/drivers/serial/suncore.c b/drivers/serial/suncore.c index a2d4a19550ab..50d3b5e4ec73 100644 --- a/drivers/serial/suncore.c +++ b/drivers/serial/suncore.c | |||
| @@ -53,20 +53,21 @@ void sunserial_unregister_minors(struct uart_driver *drv, int count) | |||
| 53 | EXPORT_SYMBOL(sunserial_unregister_minors); | 53 | EXPORT_SYMBOL(sunserial_unregister_minors); |
| 54 | 54 | ||
| 55 | int sunserial_console_match(struct console *con, struct device_node *dp, | 55 | int sunserial_console_match(struct console *con, struct device_node *dp, |
| 56 | struct uart_driver *drv, int line) | 56 | struct uart_driver *drv, int line, bool ignore_line) |
| 57 | { | 57 | { |
| 58 | int off; | ||
| 59 | |||
| 60 | if (!con || of_console_device != dp) | 58 | if (!con || of_console_device != dp) |
| 61 | return 0; | 59 | return 0; |
| 62 | 60 | ||
| 63 | off = 0; | 61 | if (!ignore_line) { |
| 64 | if (of_console_options && | 62 | int off = 0; |
| 65 | *of_console_options == 'b') | ||
| 66 | off = 1; | ||
| 67 | 63 | ||
| 68 | if ((line & 1) != off) | 64 | if (of_console_options && |
| 69 | return 0; | 65 | *of_console_options == 'b') |
| 66 | off = 1; | ||
| 67 | |||
| 68 | if ((line & 1) != off) | ||
| 69 | return 0; | ||
| 70 | } | ||
| 70 | 71 | ||
| 71 | con->index = line; | 72 | con->index = line; |
| 72 | drv->cons = con; | 73 | drv->cons = con; |
diff --git a/drivers/serial/suncore.h b/drivers/serial/suncore.h index 042668aa602e..cab95b3fbddc 100644 --- a/drivers/serial/suncore.h +++ b/drivers/serial/suncore.h | |||
| @@ -26,7 +26,7 @@ extern int sunserial_register_minors(struct uart_driver *, int); | |||
| 26 | extern void sunserial_unregister_minors(struct uart_driver *, int); | 26 | extern void sunserial_unregister_minors(struct uart_driver *, int); |
| 27 | 27 | ||
| 28 | extern int sunserial_console_match(struct console *, struct device_node *, | 28 | extern int sunserial_console_match(struct console *, struct device_node *, |
| 29 | struct uart_driver *, int); | 29 | struct uart_driver *, int, bool); |
| 30 | extern void sunserial_console_termios(struct console *); | 30 | extern void sunserial_console_termios(struct console *); |
| 31 | 31 | ||
| 32 | #endif /* !(_SERIAL_SUN_H) */ | 32 | #endif /* !(_SERIAL_SUN_H) */ |
diff --git a/drivers/serial/sunsab.c b/drivers/serial/sunsab.c index 8755de8adbca..e7215c200ecd 100644 --- a/drivers/serial/sunsab.c +++ b/drivers/serial/sunsab.c | |||
| @@ -1027,10 +1027,12 @@ static int __devinit sab_probe(struct of_device *op, const struct of_device_id * | |||
| 1027 | goto out1; | 1027 | goto out1; |
| 1028 | 1028 | ||
| 1029 | sunserial_console_match(SUNSAB_CONSOLE(), op->node, | 1029 | sunserial_console_match(SUNSAB_CONSOLE(), op->node, |
| 1030 | &sunsab_reg, up[0].port.line); | 1030 | &sunsab_reg, up[0].port.line, |
| 1031 | false); | ||
| 1031 | 1032 | ||
| 1032 | sunserial_console_match(SUNSAB_CONSOLE(), op->node, | 1033 | sunserial_console_match(SUNSAB_CONSOLE(), op->node, |
| 1033 | &sunsab_reg, up[1].port.line); | 1034 | &sunsab_reg, up[1].port.line, |
| 1035 | false); | ||
| 1034 | 1036 | ||
| 1035 | err = uart_add_one_port(&sunsab_reg, &up[0].port); | 1037 | err = uart_add_one_port(&sunsab_reg, &up[0].port); |
| 1036 | if (err) | 1038 | if (err) |
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c index f6511a44d15b..4868b318e55e 100644 --- a/drivers/serial/sunsu.c +++ b/drivers/serial/sunsu.c | |||
| @@ -1468,7 +1468,8 @@ static int __devinit su_probe(struct of_device *op, const struct of_device_id *m | |||
| 1468 | up->port.ops = &sunsu_pops; | 1468 | up->port.ops = &sunsu_pops; |
| 1469 | 1469 | ||
| 1470 | sunserial_console_match(SUNSU_CONSOLE(), dp, | 1470 | sunserial_console_match(SUNSU_CONSOLE(), dp, |
| 1471 | &sunsu_reg, up->port.line); | 1471 | &sunsu_reg, up->port.line, |
| 1472 | false); | ||
| 1472 | err = uart_add_one_port(&sunsu_reg, &up->port); | 1473 | err = uart_add_one_port(&sunsu_reg, &up->port); |
| 1473 | if (err) | 1474 | if (err) |
| 1474 | goto out_unmap; | 1475 | goto out_unmap; |
diff --git a/drivers/serial/sunzilog.c b/drivers/serial/sunzilog.c index ef693ae22e7f..3242688978e5 100644 --- a/drivers/serial/sunzilog.c +++ b/drivers/serial/sunzilog.c | |||
| @@ -1416,7 +1416,8 @@ static int __devinit zs_probe(struct of_device *op, const struct of_device_id *m | |||
| 1416 | 1416 | ||
| 1417 | if (!keyboard_mouse) { | 1417 | if (!keyboard_mouse) { |
| 1418 | if (sunserial_console_match(SUNZILOG_CONSOLE(), op->node, | 1418 | if (sunserial_console_match(SUNZILOG_CONSOLE(), op->node, |
| 1419 | &sunzilog_reg, up[0].port.line)) | 1419 | &sunzilog_reg, up[0].port.line, |
| 1420 | false)) | ||
| 1420 | up->flags |= SUNZILOG_FLAG_IS_CONS; | 1421 | up->flags |= SUNZILOG_FLAG_IS_CONS; |
| 1421 | err = uart_add_one_port(&sunzilog_reg, &up[0].port); | 1422 | err = uart_add_one_port(&sunzilog_reg, &up[0].port); |
| 1422 | if (err) { | 1423 | if (err) { |
| @@ -1425,7 +1426,8 @@ static int __devinit zs_probe(struct of_device *op, const struct of_device_id *m | |||
| 1425 | return err; | 1426 | return err; |
| 1426 | } | 1427 | } |
| 1427 | if (sunserial_console_match(SUNZILOG_CONSOLE(), op->node, | 1428 | if (sunserial_console_match(SUNZILOG_CONSOLE(), op->node, |
| 1428 | &sunzilog_reg, up[1].port.line)) | 1429 | &sunzilog_reg, up[1].port.line, |
| 1430 | false)) | ||
| 1429 | up->flags |= SUNZILOG_FLAG_IS_CONS; | 1431 | up->flags |= SUNZILOG_FLAG_IS_CONS; |
| 1430 | err = uart_add_one_port(&sunzilog_reg, &up[1].port); | 1432 | err = uart_add_one_port(&sunzilog_reg, &up[1].port); |
| 1431 | if (err) { | 1433 | if (err) { |
