aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMarcel Moolenaar <marcel@FreeBSD.org>2014-07-26 17:49:40 +0000
committerMarcel Moolenaar <marcel@FreeBSD.org>2014-07-26 17:49:40 +0000
commit359ee827e1c0703a23add74832a78d7c03b16748 (patch)
treec04da3607f0db5e0ada60dfa312da262070c3879 /sys
parent0327754b5281f9edbf23d35fc8976cda2a5c6c4e (diff)
downloadsrc-359ee827e1c0703a23add74832a78d7c03b16748.tar.gz
src-359ee827e1c0703a23add74832a78d7c03b16748.zip
Do not fail the low-level device probe simply because the kernel
doesn't have support for the Z8530. Embedded PowerPC platforms typically don't. Fail when the device class we actually need is not present. Obtained from: Juniper Networks, Inc.
Notes
Notes: svn path=/head/; revision=269131
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/uart/uart_cpu_powerpc.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/dev/uart/uart_cpu_powerpc.c b/sys/dev/uart/uart_cpu_powerpc.c
index 0791c7783bac..e41ceaea82ab 100644
--- a/sys/dev/uart/uart_cpu_powerpc.c
+++ b/sys/dev/uart/uart_cpu_powerpc.c
@@ -113,10 +113,6 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
phandle_t input, opts, chosen;
int error;
- class = &uart_z8530_class;
- if (class == NULL)
- return (ENXIO);
-
opts = OF_finddevice("/options");
chosen = OF_finddevice("/chosen");
switch (devtype) {
@@ -181,6 +177,9 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
} else
return (ENXIO);
+ if (class == NULL)
+ return (ENXIO);
+
error = OF_decode_addr(input, 0, &di->bas.bst, &di->bas.bsh);
if (error)
return (error);