|
@@ -77,23 +77,24 @@ int sunserial_console_match(struct console *con, struct device_node *dp,
|
|
|
}
|
|
|
EXPORT_SYMBOL(sunserial_console_match);
|
|
|
|
|
|
-void
|
|
|
-sunserial_console_termios(struct console *con)
|
|
|
+void sunserial_console_termios(struct console *con, struct device_node *uart_dp)
|
|
|
{
|
|
|
- struct device_node *dp;
|
|
|
- const char *od, *mode, *s;
|
|
|
+ const char *mode, *s;
|
|
|
char mode_prop[] = "ttyX-mode";
|
|
|
int baud, bits, stop, cflag;
|
|
|
char parity;
|
|
|
|
|
|
- dp = of_find_node_by_path("/options");
|
|
|
- od = of_get_property(dp, "output-device", NULL);
|
|
|
- if (!strcmp(od, "rsc")) {
|
|
|
- mode = of_get_property(of_console_device,
|
|
|
+ if (!strcmp(uart_dp->name, "rsc") ||
|
|
|
+ !strcmp(uart_dp->name, "rsc-console") ||
|
|
|
+ !strcmp(uart_dp->name, "rsc-control")) {
|
|
|
+ mode = of_get_property(uart_dp,
|
|
|
"ssp-console-modes", NULL);
|
|
|
if (!mode)
|
|
|
mode = "115200,8,n,1,-";
|
|
|
+ } else if (!strcmp(uart_dp->name, "lom-console")) {
|
|
|
+ mode = "9600,8,n,1,-";
|
|
|
} else {
|
|
|
+ struct device_node *dp;
|
|
|
char c;
|
|
|
|
|
|
c = 'a';
|
|
@@ -102,6 +103,7 @@ sunserial_console_termios(struct console *con)
|
|
|
|
|
|
mode_prop[3] = c;
|
|
|
|
|
|
+ dp = of_find_node_by_path("/options");
|
|
|
mode = of_get_property(dp, mode_prop, NULL);
|
|
|
if (!mode)
|
|
|
mode = "9600,8,n,1,-";
|