[U-Boot] [PATCH] serial: ns16550: Fix serial output on Tegra186
Thierry Reding
thierry.reding at gmail.com
Fri Sep 30 10:46:09 CEST 2016
From: Thierry Reding <treding at nvidia.com>
For Tegra186 there are currently no UART clocks wired up in device tree.
This exposes a regression introduced in commit 50fce1d5d874 ("serial:
ns16550: Support clocks via phandle"), which causes the p2771-0000-500
board (and probably any Tegra186-based board as well) to fail to boot.
The reason is that if no clocks property exists, then clk_get_by_index()
returns -ENOENT (via fdtdec_parse_phandle_with_args()) rather than
-ENODEV as the above-mentioned commit expects.
Fix this by checking for the right error code.
Reported-by: Alexandre Courbot <acourbot at nvidia.com>
Signed-off-by: Thierry Reding <treding at nvidia.com>
---
drivers/serial/ns16550.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index 765499dab646..9c36dbe2a566 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -408,7 +408,7 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev)
err = clk_get_rate(&clk);
if (!IS_ERR_VALUE(err))
plat->clock = err;
- } else if (err != -ENODEV && err != -ENOSYS) {
+ } else if (err != -ENOENT && err != -ENOSYS) {
debug("ns16550 failed to get clock\n");
return err;
}
--
2.10.0
More information about the U-Boot
mailing list