Module Name: src
Committed By: uebayasi
Date: Sat Nov 1 05:56:36 UTC 2014
Modified Files:
src/sys/dev: audio.c audio_if.h
Log Message:
audio(4): Fix indirect circular dependency with audio if drivers
Provide audio_attach_mi(4) as inline so that audio if drivers don't need to
call functions in audio.c. This way audio if drivers (e.g. auich(4)) can be
linked into kernel without audio.c.
To generate a diff of this commit:
cvs rdiff -u -r1.263 -r1.264 src/sys/dev/audio.c
cvs rdiff -u -r1.67 -r1.68 src/sys/dev/audio_if.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/audio.c
diff -u src/sys/dev/audio.c:1.263 src/sys/dev/audio.c:1.264
--- src/sys/dev/audio.c:1.263 Fri Jul 25 08:10:35 2014
+++ src/sys/dev/audio.c Sat Nov 1 05:56:36 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: audio.c,v 1.263 2014/07/25 08:10:35 dholland Exp $ */
+/* $NetBSD: audio.c,v 1.264 2014/11/01 05:56:36 uebayasi Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -155,7 +155,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: audio.c,v 1.263 2014/07/25 08:10:35 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: audio.c,v 1.264 2014/11/01 05:56:36 uebayasi Exp $");
#include "audio.h"
#if NAUDIO > 0
@@ -829,27 +829,6 @@ au_setup_ports(struct audio_softc *sc, s
}
}
-/*
- * Called from hardware driver. This is where the MI audio driver gets
- * probed/attached to the hardware driver.
- */
-device_t
-audio_attach_mi(const struct audio_hw_if *ahwp, void *hdlp, device_t dev)
-{
- struct audio_attach_args arg;
-
-#ifdef DIAGNOSTIC
- if (ahwp == NULL) {
- aprint_error("audio_attach_mi: NULL\n");
- return 0;
- }
-#endif
- arg.type = AUDIODEV_TYPE_AUDIO;
- arg.hwif = ahwp;
- arg.hdl = hdlp;
- return config_found(dev, &arg, audioprint);
-}
-
#ifdef AUDIO_DEBUG
void audio_printsc(struct audio_softc *);
void audio_print_params(const char *, struct audio_params *);
Index: src/sys/dev/audio_if.h
diff -u src/sys/dev/audio_if.h:1.67 src/sys/dev/audio_if.h:1.68
--- src/sys/dev/audio_if.h:1.67 Wed Nov 23 23:07:31 2011
+++ src/sys/dev/audio_if.h Sat Nov 1 05:56:36 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: audio_if.h,v 1.67 2011/11/23 23:07:31 jmcneill Exp $ */
+/* $NetBSD: audio_if.h,v 1.68 2014/11/01 05:56:36 uebayasi Exp $ */
/*
* Copyright (c) 1994 Havard Eidnes.
@@ -254,10 +254,32 @@ struct audio_attach_args {
#define AUDIODEV_TYPE_MPU 3
#define AUDIODEV_TYPE_AUX 4
-/* Attach the MI driver(s) to the MD driver. */
-device_t audio_attach_mi(const struct audio_hw_if *, void *, device_t);
int audioprint(void *, const char *);
+/*
+ * Called from hardware driver. This is where the MI audio driver gets
+ * probed/attached to the hardware driver.
+ *
+ * This is provided as inline so that hardware drivers don't need to depend
+ * on audio.c.
+ */
+static inline device_t
+audio_attach_mi(const struct audio_hw_if *ahwp, void *hdlp, device_t dev)
+{
+ struct audio_attach_args arg;
+
+#ifdef DIAGNOSTIC
+ if (ahwp == NULL) {
+ aprint_error("audio_attach_mi: NULL\n");
+ return 0;
+ }
+#endif
+ arg.type = AUDIODEV_TYPE_AUDIO;
+ arg.hwif = ahwp;
+ arg.hdl = hdlp;
+ return config_found(dev, &arg, audioprint);
+}
+
/* Device identity flags */
#define SOUND_DEVICE 0
#define AUDIO_DEVICE 0x80