diff options
author | ian <ian@FreeBSD.org> | 2014-02-02 19:17:28 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2014-02-02 19:17:28 +0000 |
commit | 71d90c04a87e5d83dd12a18e730bf5a49659d712 (patch) | |
tree | f7a07f25a40a264286f85b60ecb1346dd35ef91b /sys/arm/versatile | |
parent | 34475ded0642e033e494961693b123591dd96ff8 (diff) | |
download | FreeBSD-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/versatile')
-rw-r--r-- | sys/arm/versatile/if_smc_fdt.c | 3 | ||||
-rw-r--r-- | sys/arm/versatile/pl050.c | 3 | ||||
-rw-r--r-- | sys/arm/versatile/sp804.c | 3 | ||||
-rw-r--r-- | sys/arm/versatile/versatile_clcd.c | 3 | ||||
-rw-r--r-- | sys/arm/versatile/versatile_pci.c | 3 | ||||
-rw-r--r-- | sys/arm/versatile/versatile_sic.c | 4 |
6 files changed, 19 insertions, 0 deletions
diff --git a/sys/arm/versatile/if_smc_fdt.c b/sys/arm/versatile/if_smc_fdt.c index 8334c27..d010f93 100644 --- a/sys/arm/versatile/if_smc_fdt.c +++ b/sys/arm/versatile/if_smc_fdt.c @@ -64,6 +64,9 @@ smc_fdt_probe(device_t dev) { struct smc_softc *sc; + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + if (ofw_bus_is_compatible(dev, "smsc,lan91c111")) { sc = device_get_softc(dev); sc->smc_usemem = 1; diff --git a/sys/arm/versatile/pl050.c b/sys/arm/versatile/pl050.c index 72569dc..ec26f2a 100644 --- a/sys/arm/versatile/pl050.c +++ b/sys/arm/versatile/pl050.c @@ -609,6 +609,9 @@ static int pl050_kmi_probe(device_t dev) { + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + if (ofw_bus_is_compatible(dev, "arm,pl050")) { device_set_desc(dev, "PL050 Keyboard/Mouse Interface"); return (BUS_PROBE_DEFAULT); diff --git a/sys/arm/versatile/sp804.c b/sys/arm/versatile/sp804.c index 16db30d..5f986b1 100644 --- a/sys/arm/versatile/sp804.c +++ b/sys/arm/versatile/sp804.c @@ -184,6 +184,9 @@ static int sp804_timer_probe(device_t dev) { + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + if (ofw_bus_is_compatible(dev, "arm,sp804")) { device_set_desc(dev, "SP804 System Timer"); return (BUS_PROBE_DEFAULT); diff --git a/sys/arm/versatile/versatile_clcd.c b/sys/arm/versatile/versatile_clcd.c index daa09e7..1dd7778 100644 --- a/sys/arm/versatile/versatile_clcd.c +++ b/sys/arm/versatile/versatile_clcd.c @@ -232,6 +232,9 @@ static int versatile_clcdc_probe(device_t dev) { + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + if (ofw_bus_is_compatible(dev, "arm,pl110")) { device_set_desc(dev, "PL110 CLCD controller"); return (BUS_PROBE_DEFAULT); diff --git a/sys/arm/versatile/versatile_pci.c b/sys/arm/versatile/versatile_pci.c index bc54245..0e48496 100644 --- a/sys/arm/versatile/versatile_pci.c +++ b/sys/arm/versatile/versatile_pci.c @@ -144,6 +144,9 @@ static int versatile_pci_probe(device_t dev) { + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + if (ofw_bus_is_compatible(dev, "versatile,pci")) { device_set_desc(dev, "Versatile PCI controller"); return (BUS_PROBE_DEFAULT); diff --git a/sys/arm/versatile/versatile_sic.c b/sys/arm/versatile/versatile_sic.c index f401c30..99ffb27 100644 --- a/sys/arm/versatile/versatile_sic.c +++ b/sys/arm/versatile/versatile_sic.c @@ -73,6 +73,10 @@ struct versatile_sic_softc { static int versatile_sic_probe(device_t dev) { + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + if (!ofw_bus_is_compatible(dev, "arm,versatile-sic")) return (ENXIO); device_set_desc(dev, "ARM Versatile SIC"); |