Module Name: src
Committed By: jmcneill
Date: Mon Mar 25 22:59:25 UTC 2013
Modified Files:
src/sys/external/bsd/vchiq/dist/interface/vchiq_arm:
vchiq_kmod_netbsd.c
Log Message:
defer vchiq initialization with config_mountroot, works around a timing issue
that caused problems during sdhc init on some boards
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c
diff -u src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c:1.1 src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c:1.2
--- src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c:1.1 Fri Mar 8 12:32:31 2013
+++ src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c Mon Mar 25 22:59:25 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: vchiq_kmod_netbsd.c,v 1.1 2013/03/08 12:32:31 jmcneill Exp $ */
+/* $NetBSD: vchiq_kmod_netbsd.c,v 1.2 2013/03/25 22:59:25 jmcneill Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vchiq_kmod_netbsd.c,v 1.1 2013/03/08 12:32:31 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vchiq_kmod_netbsd.c,v 1.2 2013/03/25 22:59:25 jmcneill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -104,10 +104,19 @@ vchiq_attach(device_t parent, device_t s
return;
}
- vchiq_core_initialize();
-
vchiq_softc = sc;
+ config_mountroot(self, vchiq_defer);
+}
+
+static void
+vchiq_defer(device_t self)
+{
+ struct vchiq_attach_args vaa;
+ struct vchiq_softc *sc = device_private(self);
+
+ vchiq_core_initialize();
+
sc->sc_ih = bcm2835_intr_establish(sc->sc_intr, IPL_VM,
vchiq_intr, sc);
if (sc->sc_ih == NULL) {
@@ -118,14 +127,6 @@ vchiq_attach(device_t parent, device_t s
vchiq_init();
- config_mountroot(self, vchiq_defer);
-}
-
-static void
-vchiq_defer(device_t self)
-{
- struct vchiq_attach_args vaa;
-
vaa.vaa_name = "AUDS";
config_found_ia(self, "vchiqbus", &vaa, vchiq_print);
}