Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -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: