Commit dc4f397d authored by Scott Wood's avatar Scott Wood Committed by Paul Mackerras

[POWERPC] bootwrapper: serial_console_init() fixes

1. Search the entire compatible list for serial devices.

The serial code previously did a simple strcmp on the compatible
node; this fails when the match string is not the first compatible
listed.  Use dt_is_compatible() instead.

2. Don't call serial_edit_cmdline if getc isn't defined.
Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
Acked-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 61d3b949
...@@ -114,18 +114,14 @@ int serial_console_init(void) ...@@ -114,18 +114,14 @@ int serial_console_init(void)
{ {
void *devp; void *devp;
int rc = -1; int rc = -1;
char compat[MAX_PROP_LEN];
devp = serial_get_stdout_devp(); devp = serial_get_stdout_devp();
if (devp == NULL) if (devp == NULL)
goto err_out; goto err_out;
if (getprop(devp, "compatible", compat, sizeof(compat)) < 0) if (dt_is_compatible(devp, "ns16550"))
goto err_out;
if (!strcmp(compat, "ns16550"))
rc = ns16550_console_init(devp, &serial_cd); rc = ns16550_console_init(devp, &serial_cd);
else if (!strcmp(compat, "marvell,mpsc")) else if (dt_is_compatible(devp, "marvell,mpsc"))
rc = mpsc_console_init(devp, &serial_cd); rc = mpsc_console_init(devp, &serial_cd);
/* Add other serial console driver calls here */ /* Add other serial console driver calls here */
...@@ -133,10 +129,12 @@ int serial_console_init(void) ...@@ -133,10 +129,12 @@ int serial_console_init(void)
if (!rc) { if (!rc) {
console_ops.open = serial_open; console_ops.open = serial_open;
console_ops.write = serial_write; console_ops.write = serial_write;
console_ops.edit_cmdline = serial_edit_cmdline;
console_ops.close = serial_close; console_ops.close = serial_close;
console_ops.data = &serial_cd; console_ops.data = &serial_cd;
if (serial_cd.getc)
console_ops.edit_cmdline = serial_edit_cmdline;
return 0; return 0;
} }
err_out: err_out:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment