diff options
Diffstat (limited to 'drivers')
-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) { |