summaryrefslogtreecommitdiffstats
path: root/sys/arm/xilinx
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-02-02 19:17:28 +0000
committerian <ian@FreeBSD.org>2014-02-02 19:17:28 +0000
commit71d90c04a87e5d83dd12a18e730bf5a49659d712 (patch)
treef7a07f25a40a264286f85b60ecb1346dd35ef91b /sys/arm/xilinx
parent34475ded0642e033e494961693b123591dd96ff8 (diff)
downloadFreeBSD-src-71d90c04a87e5d83dd12a18e730bf5a49659d712.zip
FreeBSD-src-71d90c04a87e5d83dd12a18e730bf5a49659d712.tar.gz
Follow r261352 by updating all drivers which are children of simplebus
to check the status property in their probe routines. Simplebus used to only instantiate its children whose status="okay" but that was improper behavior, fixed in r261352. Now that it doesn't check anymore and probes all its children; the children all have to do the check because really only the children know how to properly interpret their status property strings. Right now all existing drivers only understand "okay" versus something- that's-not-okay, so they all use the new ofw_bus_status_okay() helper.
Diffstat (limited to 'sys/arm/xilinx')
-rw-r--r--sys/arm/xilinx/zy7_devcfg.c4
-rw-r--r--sys/arm/xilinx/zy7_ehci.c3
-rw-r--r--sys/arm/xilinx/zy7_gpio.c3
-rw-r--r--sys/arm/xilinx/zy7_slcr.c4
4 files changed, 14 insertions, 0 deletions
diff --git a/sys/arm/xilinx/zy7_devcfg.c b/sys/arm/xilinx/zy7_devcfg.c
index 9b49e85..ae96dd3 100644
--- a/sys/arm/xilinx/zy7_devcfg.c
+++ b/sys/arm/xilinx/zy7_devcfg.c
@@ -519,6 +519,10 @@ zy7_devcfg_sysctl_pl_done(SYSCTL_HANDLER_ARGS)
static int
zy7_devcfg_probe(device_t dev)
{
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (!ofw_bus_is_compatible(dev, "xlnx,zy7_devcfg"))
return (ENXIO);
diff --git a/sys/arm/xilinx/zy7_ehci.c b/sys/arm/xilinx/zy7_ehci.c
index cfe6dd4..c2ac818 100644
--- a/sys/arm/xilinx/zy7_ehci.c
+++ b/sys/arm/xilinx/zy7_ehci.c
@@ -193,6 +193,9 @@ static int
zy7_ehci_probe(device_t dev)
{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (!ofw_bus_is_compatible(dev, "xlnx,zy7_ehci"))
return (ENXIO);
diff --git a/sys/arm/xilinx/zy7_gpio.c b/sys/arm/xilinx/zy7_gpio.c
index 65dcc67..77dc640 100644
--- a/sys/arm/xilinx/zy7_gpio.c
+++ b/sys/arm/xilinx/zy7_gpio.c
@@ -276,6 +276,9 @@ static int
zy7_gpio_probe(device_t dev)
{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (!ofw_bus_is_compatible(dev, "xlnx,zy7_gpio"))
return (ENXIO);
diff --git a/sys/arm/xilinx/zy7_slcr.c b/sys/arm/xilinx/zy7_slcr.c
index c6c8866..e448d76 100644
--- a/sys/arm/xilinx/zy7_slcr.c
+++ b/sys/arm/xilinx/zy7_slcr.c
@@ -192,6 +192,10 @@ zy7_slcr_postload_pl(int en_level_shifters)
static int
zy7_slcr_probe(device_t dev)
{
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (!ofw_bus_is_compatible(dev, "xlnx,zy7_slcr"))
return (ENXIO);
OpenPOWER on IntegriCloud