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

Reply via email to