Fix stdout-path handling

-----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEslwAIq+Gp8wWVbYnfxc6PpAIreYFAl3mkWwACgkQfxc6PpAI
 rebncAf/SvjTDzKZZiCsSKakHr2YJmID1GwCg9HI3vBxJH2vjsdWKBBg7THmaqve
 ST/haRump2HXPBTEHtqIo3wSFkopuzGFmAa/20bpCDoGoJdLrwzWbS1SgPcPNr2m
 gqTbkWweNej+dndM1sYG/Fv5hzWqBfZvKah9vYyW9V6AaIW7r3Ahe+thkpOETKRq
 QT1fe8Y2L25xTRqad5DuvEj0JkRR2RYBInZWp0NkcyoTFRpZUoV7ZVMlMMjgn4b/
 dVJtdDRozURGbbV9F7DmvEpfFMoWfaEn6Q3gsRfuhDBLlil1iYikhsjURyspPgxt
 NNBzgEkxKDeZksLcqNnyG7GKZWp20g==
 =SOs9
 -----END PGP SIGNATURE-----

Merge tag 'dm-pull-3dec19' of https://gitlab.denx.de/u-boot/custodians/u-boot-dm

Fix stdout-path handling
This commit is contained in:
Tom Rini 2019-12-03 18:12:04 -05:00
commit a7bbaf8c13

View File

@ -29,29 +29,31 @@ static const unsigned long baudrate_table[] = CONFIG_SYS_BAUDRATE_TABLE;
#if CONFIG_IS_ENABLED(SERIAL_PRESENT)
static int serial_check_stdout(const void *blob, struct udevice **devp)
{
int node;
int node = -1;
const char *str, *p, *name;
int namelen;
/* Check for a chosen console */
node = fdtdec_get_chosen_node(blob, "stdout-path");
if (node < 0) {
const char *str, *p, *name;
str = fdtdec_get_chosen_prop(blob, "stdout-path");
if (str) {
p = strchr(str, ':');
namelen = p ? p - str : strlen(str);
node = fdt_path_offset_namelen(blob, str, namelen);
/*
* Deal with things like
* stdout-path = "serial0:115200n8";
*
* We need to look up the alias and then follow it to the
* correct node.
*/
str = fdtdec_get_chosen_prop(blob, "stdout-path");
if (str) {
p = strchr(str, ':');
name = fdt_get_alias_namelen(blob, str,
p ? p - str : strlen(str));
if (node < 0) {
/*
* Deal with things like
* stdout-path = "serial0:115200n8";
*
* We need to look up the alias and then follow it to
* the correct node.
*/
name = fdt_get_alias_namelen(blob, str, namelen);
if (name)
node = fdt_path_offset(blob, name);
}
}
if (node < 0)
node = fdt_path_offset(blob, "console");
if (!uclass_get_device_by_of_offset(UCLASS_SERIAL, node, devp))