Module Name:    src
Committed By:   jmcneill
Date:           Sun Nov 20 16:34:08 UTC 2011

Modified Files:
        src/sys/arch/prep/isa [jmcneill-audiomp3]: paud_isa.c

Log Message:
adapt to audiomp api changes


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.14.4.1 src/sys/arch/prep/isa/paud_isa.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/arch/prep/isa/paud_isa.c
diff -u src/sys/arch/prep/isa/paud_isa.c:1.14 src/sys/arch/prep/isa/paud_isa.c:1.14.4.1
--- src/sys/arch/prep/isa/paud_isa.c:1.14	Fri Jul  1 16:57:29 2011
+++ src/sys/arch/prep/isa/paud_isa.c	Sun Nov 20 16:34:08 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: paud_isa.c,v 1.14 2011/07/01 16:57:29 dyoung Exp $	*/
+/*	$NetBSD: paud_isa.c,v 1.14.4.1 2011/11/20 16:34:08 jmcneill Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: paud_isa.c,v 1.14 2011/07/01 16:57:29 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: paud_isa.c,v 1.14.4.1 2011/11/20 16:34:08 jmcneill Exp $");
 
 #include "audio.h"
 #if NAUDIO > 0
@@ -39,7 +39,7 @@ __KERNEL_RCSID(0, "$NetBSD: paud_isa.c,v
 #include <sys/systm.h>
 #include <sys/errno.h>
 #include <sys/device.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
 
 #include <sys/bus.h>
 #include <machine/intr.h>
@@ -87,6 +87,7 @@ static struct audio_device paud_device =
 	""
 };
 
+static int paud_intr(void *);
 static int paud_getdev(void *, struct audio_device *);
 static int paud_mixer_set_port(void *, mixer_ctrl_t *);
 static int paud_mixer_get_port(void *, mixer_ctrl_t *);
@@ -120,6 +121,8 @@ static const struct audio_hw_if paud_hw_
 	ad1848_isa_trigger_output,
 	ad1848_isa_trigger_input,
 	NULL,
+	NULL,
+	ad1848_get_locks,
 };
 
 /* autoconfig routines */
@@ -158,6 +161,9 @@ paud_attach_isa(device_t parent, device_
 	sc->sc_ad1848.sc_iot = ia->ia_iot;
 	sc->sc_ic = ia->ia_ic;
 
+	mutex_init(&sc->sc_ad1848.sc_lock, MUTEX_DEFAULT, IPL_NONE);
+	mutex_init(&sc->sc_ad1848.sc_intr_lock, MUTEX_DEFAULT, IPL_SCHED);
+
 	if (ad1848_isa_mapprobe(sc, ia->ia_io[0].ir_addr) == 0) {
 		aprint_error(": attach failed\n");
 		return;
@@ -165,7 +171,7 @@ paud_attach_isa(device_t parent, device_
 	sc->sc_playdrq = ia->ia_drq[0].ir_drq;
 	sc->sc_recdrq = ia->ia_drq[1].ir_drq;
 	sc->sc_ih = isa_intr_establish(ia->ia_ic, ia->ia_irq[0].ir_irq,
-	    IST_EDGE, IPL_AUDIO, ad1848_isa_intr, sc);
+	    IST_EDGE, IPL_SCHED, paud_intr, sc);
 	ad1848_isa_attach(sc);
 	aprint_normal("\n");
 	audio_attach_mi(&paud_hw_if, &sc->sc_ad1848, self);
@@ -173,6 +179,19 @@ paud_attach_isa(device_t parent, device_
 }
 
 static int
+paud_intr(void *addr)
+{
+	struct ad1848_isa_softc *sc = addr;
+	int ret;
+
+	mutex_spin_enter(&sc->sc_ad1848.sc_intr_lock);
+	ret = ad1848_isa_intr(sc);
+	mutex_spin_exit(&sc->sc_ad1848.sc_intr_lock);
+
+	return ret;
+}
+
+static int
 paud_getdev(void *addr, struct audio_device *retp)
 {
 

Reply via email to