Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys Remove simplebus driver and allow fdtbus to attach direc...



details:   https://anonhg.NetBSD.org/src/rev/366811ac4f17
branches:  trunk
changeset: 823178:366811ac4f17
user:      jmcneill <jmcneill%NetBSD.org@localhost>
date:      Fri Apr 14 22:55:06 2017 +0000

description:
Remove simplebus driver and allow fdtbus to attach directly to itself.

diffstat:

 sys/arch/evbarm/conf/EXYNOS |   6 +--
 sys/arch/evbarm/conf/TEGRA  |   6 +--
 sys/dev/fdt/fdtbus.c        |  12 ++++-
 sys/dev/fdt/files.fdt       |   8 +---
 sys/dev/fdt/simplebus.c     |  86 ---------------------------------------------
 5 files changed, 15 insertions(+), 103 deletions(-)

diffs (194 lines):

diff -r ca2c7678425b -r 366811ac4f17 sys/arch/evbarm/conf/EXYNOS
--- a/sys/arch/evbarm/conf/EXYNOS       Fri Apr 14 22:35:05 2017 +0000
+++ b/sys/arch/evbarm/conf/EXYNOS       Fri Apr 14 22:55:06 2017 +0000
@@ -1,5 +1,5 @@
 #
-#      $NetBSD: EXYNOS,v 1.12 2017/02/19 07:47:00 rin Exp $
+#      $NetBSD: EXYNOS,v 1.13 2017/04/14 22:55:06 jmcneill Exp $
 #
 #      ODROID-XU -- ODROID-XU4 Exynos5422 based kernel
 #
@@ -203,9 +203,7 @@
 
 # On-board I/O
 exynosfdt0     at mainbus?
-fdt0           at exynosfdt0 
-simplebus*     at fdt?
-fdt*           at simplebus?
+fdt?           at fdtbus?
 
 fregulator*    at fdt?
 
diff -r ca2c7678425b -r 366811ac4f17 sys/arch/evbarm/conf/TEGRA
--- a/sys/arch/evbarm/conf/TEGRA        Fri Apr 14 22:35:05 2017 +0000
+++ b/sys/arch/evbarm/conf/TEGRA        Fri Apr 14 22:55:06 2017 +0000
@@ -1,5 +1,5 @@
 #
-#      $NetBSD: TEGRA,v 1.12 2017/03/28 15:09:29 skrll Exp $
+#      $NetBSD: TEGRA,v 1.13 2017/04/14 22:55:06 jmcneill Exp $
 #
 #      NVIDIA Tegra K1 (T124)
 #
@@ -34,9 +34,7 @@
 
 # On-board I/O
 tegrafdt0      at mainbus?
-fdt0           at tegrafdt0 
-simplebus*     at fdt?
-fdt*           at simplebus?
+fdt*           at fdtbus?
 
 fregulator*    at fdt?
 gpiokeys*      at fdt?
diff -r ca2c7678425b -r 366811ac4f17 sys/dev/fdt/fdtbus.c
--- a/sys/dev/fdt/fdtbus.c      Fri Apr 14 22:35:05 2017 +0000
+++ b/sys/dev/fdt/fdtbus.c      Fri Apr 14 22:55:06 2017 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: fdtbus.c,v 1.5 2017/04/13 22:27:07 jmcneill Exp $ */
+/* $NetBSD: fdtbus.c,v 1.6 2017/04/14 22:55:06 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2015 Jared D. McNeill <jmcneill%invisible.ca@localhost>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fdtbus.c,v 1.5 2017/04/13 22:27:07 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fdtbus.c,v 1.6 2017/04/14 22:55:06 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -56,11 +56,17 @@
 fdt_match(device_t parent, cfdata_t cf, void *aux)
 {
        const struct fdt_attach_args *faa = aux;
+       const char * const compatible[] = { "simple-bus", NULL };
+       int match;
 
        if (!OF_child(faa->faa_phandle))
                return 0;
 
-       return 1;
+       match = of_match_compatible(faa->faa_phandle, compatible);
+       if (match)
+               return match;
+
+       return OF_finddevice("/") == faa->faa_phandle;
 }
 
 static void
diff -r ca2c7678425b -r 366811ac4f17 sys/dev/fdt/files.fdt
--- a/sys/dev/fdt/files.fdt     Fri Apr 14 22:35:05 2017 +0000
+++ b/sys/dev/fdt/files.fdt     Fri Apr 14 22:55:06 2017 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: files.fdt,v 1.7 2015/12/30 04:23:39 marty Exp $
+# $NetBSD: files.fdt,v 1.8 2017/04/14 22:55:06 jmcneill Exp $
 
 include        "external/bsd/libfdt/conf/files.libfdt"
 
@@ -6,14 +6,10 @@
 
 define fdtbus { } : clk
 
-device fdt { }
+device fdt { } : fdtbus
 attach fdt at fdtbus
 file   dev/fdt/fdtbus.c                        fdt
 
-device simplebus : fdtbus
-attach simplebus at fdt
-file   dev/fdt/simplebus.c                     simplebus
-
 device fregulator
 attach fregulator at fdt
 file   dev/fdt/fixedregulator.c                fregulator
diff -r ca2c7678425b -r 366811ac4f17 sys/dev/fdt/simplebus.c
--- a/sys/dev/fdt/simplebus.c   Fri Apr 14 22:35:05 2017 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/* $NetBSD: simplebus.c,v 1.1 2015/12/13 17:30:40 jmcneill Exp $ */
-
-/*-
- * Copyright (c) 2015 Jared D. McNeill <jmcneill%invisible.ca@localhost>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: simplebus.c,v 1.1 2015/12/13 17:30:40 jmcneill Exp $");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/device.h>
-#include <sys/kmem.h>
-
-#include <sys/bus.h>
-
-#include <dev/fdt/fdtvar.h>
-
-static int     simplebus_match(device_t, cfdata_t, void *);
-static void    simplebus_attach(device_t, device_t, void *);
-
-CFATTACH_DECL_NEW(simplebus, 0,
-    simplebus_match, simplebus_attach, NULL, NULL);
-
-static int
-simplebus_match(device_t parent, cfdata_t cf, void *aux)
-{
-       const char * const compatible[] = { "simple-bus", NULL };
-       const struct fdt_attach_args *faa = aux;
-
-       return of_match_compatible(faa->faa_phandle, compatible);
-}
-
-static void
-simplebus_attach(device_t parent, device_t self, void *aux)
-{
-       const struct fdt_attach_args *faa = aux;
-       const int phandle = faa->faa_phandle;
-       char *name;
-       int len;
-
-       aprint_naive("\n");
-
-       len = OF_getproplen(phandle, "name");
-       if (len > 0) {
-               name = kmem_zalloc(len, KM_SLEEP);
-               if (OF_getprop(phandle, "name", name, len) == len) {
-                       aprint_normal(": %s\n", name);
-               } else {
-                       aprint_normal("\n");
-               }
-               kmem_free(name, len);
-       } else {
-               aprint_normal("\n");
-       }
-
-       struct fdt_attach_args nfaa = *faa;
-       nfaa.faa_name = "simple-bus";
-       nfaa.faa_init = NULL;
-       nfaa.faa_ninit = 0;
-       nfaa.faa_phandle = phandle;
-
-       config_found(self, &nfaa, NULL);
-}



Home | Main Index | Thread Index | Old Index