Skip to content

Commit

Permalink
[POWERPC] bootwrapper: serial_console_init() fixes
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Scott Wood authored and Paul Mackerras committed Aug 22, 2007
1 parent 61d3b94 commit dc4f397
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions arch/powerpc/boot/serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,29 +114,27 @@ 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 */

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:
Expand Down

0 comments on commit dc4f397

Please sign in to comment.