[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: Scott Wood <scottwood@freescale.com> Acked-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
Родитель
61d3b949b7
Коммит
dc4f397d6e
|
@ -114,18 +114,14 @@ int serial_console_init(void)
|
|||
{
|
||||
void *devp;
|
||||
int rc = -1;
|
||||
char compat[MAX_PROP_LEN];
|
||||
|
||||
devp = serial_get_stdout_devp();
|
||||
if (devp == NULL)
|
||||
goto err_out;
|
||||
|
||||
if (getprop(devp, "compatible", compat, sizeof(compat)) < 0)
|
||||
goto err_out;
|
||||
|
||||
if (!strcmp(compat, "ns16550"))
|
||||
if (dt_is_compatible(devp, "ns16550"))
|
||||
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);
|
||||
|
||||
/* Add other serial console driver calls here */
|
||||
|
@ -133,10 +129,12 @@ int serial_console_init(void)
|
|||
if (!rc) {
|
||||
console_ops.open = serial_open;
|
||||
console_ops.write = serial_write;
|
||||
console_ops.edit_cmdline = serial_edit_cmdline;
|
||||
console_ops.close = serial_close;
|
||||
console_ops.data = &serial_cd;
|
||||
|
||||
if (serial_cd.getc)
|
||||
console_ops.edit_cmdline = serial_edit_cmdline;
|
||||
|
||||
return 0;
|
||||
}
|
||||
err_out:
|
||||
|
|
Загрузка…
Ссылка в новой задаче