of/fdt: fix aliases with baudrate in earlycon
authorStefan Agner <stefan@agner.ch>
Sat, 10 Oct 2015 08:29:30 +0000 (01:29 -0700)
committerRob Herring <robh@kernel.org>
Tue, 13 Oct 2015 18:31:26 +0000 (13:31 -0500)
Many boards use an alias in the stdout-path specification along
with console options after a colon (e.g. serial0:115200n8). When
using earlycon, this specification currently does not work. While
fdt_path_offset supports alias resolution, it does not remove the
console options by itself. Use the fdt_path_offset_namelen variant
and provide the length of the alias to enable aliases with console
options in the stdout-path.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Rob Herring <robh@kernel.org>
drivers/of/fdt.c

index 6e82bc42373ba39b552adba1271c8e436fcc797c..9fc3568302265811c5a0ae37ec6a245179ec11df 100644 (file)
@@ -813,8 +813,11 @@ static int __init early_init_dt_scan_chosen_serial(void)
        if (!p || !l)
                return -ENOENT;
 
+       /* Remove console options if present */
+       l = strchrnul(p, ':') - p;
+
        /* Get the node specified by stdout-path */
-       offset = fdt_path_offset(fdt, p);
+       offset = fdt_path_offset_namelen(fdt, p, l);
        if (offset < 0)
                return -ENODEV;