diff options
author | ian <ian@FreeBSD.org> | 2014-05-14 01:16:05 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2014-05-14 01:16:05 +0000 |
commit | 147aa314a7ea59fab69a92349cee312e49cae2bb (patch) | |
tree | b553b4077fe2c8c6098e20d3d69729a8bc8e9c11 /sys/dev/uart/uart_cpu_fdt.c | |
parent | 2963fd0dfbdafac049cadecf0774e0c027b28c88 (diff) | |
download | FreeBSD-src-147aa314a7ea59fab69a92349cee312e49cae2bb.zip FreeBSD-src-147aa314a7ea59fab69a92349cee312e49cae2bb.tar.gz |
MFC r257180, r257195, r257196, r257198, r257209, r257295
Add some extra sanity checking and checks to printf format specifiers.
Try even harder to find a console before giving up.
Make devices with registers into the KVA region work reliably.
Turn on VM_KMEM_SIZE_SCALE on 32-bit as well as 64-bit PowerPC.
Return NOKEY instead of 0 if there are no more key presses queued.
Diffstat (limited to 'sys/dev/uart/uart_cpu_fdt.c')
-rw-r--r-- | sys/dev/uart/uart_cpu_fdt.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/sys/dev/uart/uart_cpu_fdt.c b/sys/dev/uart/uart_cpu_fdt.c index b063cb4..9bf3549 100644 --- a/sys/dev/uart/uart_cpu_fdt.c +++ b/sys/dev/uart/uart_cpu_fdt.c @@ -142,14 +142,19 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di) /* * Retrieve /chosen/std{in,out}. */ - if ((chosen = OF_finddevice("/chosen")) == -1) - return (ENXIO); - for (name = propnames; *name != NULL; name++) { - if (phandle_chosen_propdev(chosen, *name, &node) == 0) - break; + node = -1; + if ((chosen = OF_finddevice("/chosen")) != -1) { + for (name = propnames; *name != NULL; name++) { + if (phandle_chosen_propdev(chosen, *name, &node) == 0) + break; + } } - if (*name == NULL) + if (chosen == -1 || *name == NULL) + node = OF_finddevice("serial0"); /* Last ditch */ + + if (node == -1) /* Can't find anything */ return (ENXIO); + /* * Retrieve serial attributes. */ |