Module Name:    src
Committed By:   jmcneill
Date:           Sat Nov 19 23:40:07 UTC 2011

Modified Files:
        src/sys/dev/pci/hdaudio [jmcneill-audiomp3]: hdafg.c hdaudio.c
            hdaudio_pci.c

Log Message:
adapt to audiomp api changes


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.10.4.1 src/sys/dev/pci/hdaudio/hdafg.c
cvs rdiff -u -r1.16 -r1.16.2.1 src/sys/dev/pci/hdaudio/hdaudio.c
cvs rdiff -u -r1.8 -r1.8.6.1 src/sys/dev/pci/hdaudio/hdaudio_pci.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/dev/pci/hdaudio/hdafg.c
diff -u src/sys/dev/pci/hdaudio/hdafg.c:1.10 src/sys/dev/pci/hdaudio/hdafg.c:1.10.4.1
--- src/sys/dev/pci/hdaudio/hdafg.c:1.10	Tue Oct 25 00:00:13 2011
+++ src/sys/dev/pci/hdaudio/hdafg.c	Sat Nov 19 23:40:07 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: hdafg.c,v 1.10 2011/10/25 00:00:13 jmcneill Exp $ */
+/* $NetBSD: hdafg.c,v 1.10.4.1 2011/11/19 23:40:07 jmcneill Exp $ */
 
 /*
  * Copyright (c) 2009 Precedence Technologies Ltd <supp...@precedence.co.uk>
@@ -60,7 +60,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hdafg.c,v 1.10 2011/10/25 00:00:13 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hdafg.c,v 1.10.4.1 2011/11/19 23:40:07 jmcneill Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -285,6 +285,8 @@ struct hdaudio_audiodev {
 
 struct hdafg_softc {
 	device_t			sc_dev;
+	kmutex_t			sc_lock;
+	kmutex_t			sc_intr_lock;
 	struct hdaudio_softc		*sc_host;
 	struct hdaudio_codec		*sc_codec;
 	struct hdaudio_function_group	*sc_fg;
@@ -361,8 +363,8 @@ static int	hdafg_halt_input(void *);
 static int	hdafg_set_port(void *, mixer_ctrl_t *);
 static int	hdafg_get_port(void *, mixer_ctrl_t *);
 static int	hdafg_query_devinfo(void *, mixer_devinfo_t *);
-static void *	hdafg_allocm(void *, int, size_t, struct malloc_type *, int);
-static void	hdafg_freem(void *, void *, struct malloc_type *);
+static void *	hdafg_allocm(void *, int, size_t);
+static void	hdafg_freem(void *, void *, size_t);
 static int	hdafg_getdev(void *, struct audio_device *);
 static size_t	hdafg_round_buffersize(void *, int, size_t);
 static paddr_t	hdafg_mappage(void *, void *, off_t, int);
@@ -373,6 +375,7 @@ static int	hdafg_trigger_output(void *, 
 static int	hdafg_trigger_input(void *, void *, void *, int,
 				      void (*)(void *), void *,
 				      const audio_params_t *);
+static void	hdafg_get_locks(void *, kmutex_t **, kmutex_t **);
 
 static const struct audio_hw_if hdafg_hw_if = {
 	.query_encoding		= hdafg_query_encoding,
@@ -392,6 +395,7 @@ static const struct audio_hw_if hdafg_hw
 	.get_props		= hdafg_get_props,
 	.trigger_output		= hdafg_trigger_output,
 	.trigger_input		= hdafg_trigger_input,
+	.get_locks		= hdafg_get_locks,
 };
 
 static int
@@ -3545,6 +3549,9 @@ hdafg_attach(device_t parent, device_t s
 
 	sc->sc_dev = self;
 
+	mutex_init(&sc->sc_lock, MUTEX_DEFAULT, IPL_NONE);
+	mutex_init(&sc->sc_intr_lock, MUTEX_DEFAULT, IPL_SCHED);
+
 	callout_init(&sc->sc_jack_callout, 0);
 	callout_setfunc(&sc->sc_jack_callout,
 	    hdafg_hp_switch_handler, sc);
@@ -3713,6 +3720,9 @@ hdafg_detach(device_t self, int flags)
 	if (mx)
 		kmem_free(mx, sc->sc_nmixers * sizeof(*mx));
 
+	mutex_destroy(&sc->sc_lock);
+	mutex_destroy(&sc->sc_intr_lock);
+
 	pmf_device_deregister(self);
 
 	return 0;
@@ -4032,8 +4042,7 @@ hdafg_query_devinfo(void *opaque, mixer_
 }
 
 static void *
-hdafg_allocm(void *opaque, int direction, size_t size,
-    struct malloc_type *type, int flags)
+hdafg_allocm(void *opaque, int direction, size_t size)
 {
 	struct hdaudio_audiodev *ad = opaque;
 	struct hdaudio_stream *st;
@@ -4056,7 +4065,7 @@ hdafg_allocm(void *opaque, int direction
 }
 
 static void
-hdafg_freem(void *opaque, void *addr, struct malloc_type *type)
+hdafg_freem(void *opaque, void *addr, size_t size)
 {
 	struct hdaudio_audiodev *ad = opaque;
 	struct hdaudio_stream *st;
@@ -4167,6 +4176,15 @@ hdafg_trigger_input(void *opaque, void *
 	return 0;
 }
 
+static void
+hdafg_get_locks(void *opaque, kmutex_t **intr, kmutex_t **thread)
+{
+	struct hdaudio_audiodev *ad = opaque;
+
+	*intr = &ad->ad_sc->sc_intr_lock;
+	*thread = &ad->ad_sc->sc_lock;
+}
+
 static int
 hdafg_unsol(device_t self, uint8_t tag)
 {

Index: src/sys/dev/pci/hdaudio/hdaudio.c
diff -u src/sys/dev/pci/hdaudio/hdaudio.c:1.16 src/sys/dev/pci/hdaudio/hdaudio.c:1.16.2.1
--- src/sys/dev/pci/hdaudio/hdaudio.c:1.16	Fri Nov  4 15:32:34 2011
+++ src/sys/dev/pci/hdaudio/hdaudio.c	Sat Nov 19 23:40:07 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: hdaudio.c,v 1.16 2011/11/04 15:32:34 jakllsch Exp $ */
+/* $NetBSD: hdaudio.c,v 1.16.2.1 2011/11/19 23:40:07 jmcneill Exp $ */
 
 /*
  * Copyright (c) 2009 Precedence Technologies Ltd <supp...@precedence.co.uk>
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v 1.16 2011/11/04 15:32:34 jakllsch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v 1.16.2.1 2011/11/19 23:40:07 jmcneill Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -778,8 +778,8 @@ hdaudio_attach(device_t dev, struct hdau
 	KASSERT(sc->sc_memvalid == true);
 
 	sc->sc_dev = dev;
-	mutex_init(&sc->sc_corb_mtx, MUTEX_DEFAULT, IPL_AUDIO);
-	mutex_init(&sc->sc_stream_mtx, MUTEX_DEFAULT, IPL_AUDIO);
+	mutex_init(&sc->sc_corb_mtx, MUTEX_DEFAULT, IPL_SCHED);
+	mutex_init(&sc->sc_stream_mtx, MUTEX_DEFAULT, IPL_SCHED);
 
 	hdaudio_init(sc);
 

Index: src/sys/dev/pci/hdaudio/hdaudio_pci.c
diff -u src/sys/dev/pci/hdaudio/hdaudio_pci.c:1.8 src/sys/dev/pci/hdaudio/hdaudio_pci.c:1.8.6.1
--- src/sys/dev/pci/hdaudio/hdaudio_pci.c:1.8	Sat Feb 12 15:15:34 2011
+++ src/sys/dev/pci/hdaudio/hdaudio_pci.c	Sat Nov 19 23:40:07 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: hdaudio_pci.c,v 1.8 2011/02/12 15:15:34 jmcneill Exp $ */
+/* $NetBSD: hdaudio_pci.c,v 1.8.6.1 2011/11/19 23:40:07 jmcneill Exp $ */
 
 /*
  * Copyright (c) 2009 Precedence Technologies Ltd <supp...@precedence.co.uk>
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hdaudio_pci.c,v 1.8 2011/02/12 15:15:34 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hdaudio_pci.c,v 1.8.6.1 2011/11/19 23:40:07 jmcneill Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -141,7 +141,7 @@ hdaudio_pci_attach(device_t parent, devi
 		return;
 	}
 	intrstr = pci_intr_string(pa->pa_pc, ih);
-	sc->sc_ih = pci_intr_establish(pa->pa_pc, ih, IPL_AUDIO,
+	sc->sc_ih = pci_intr_establish(pa->pa_pc, ih, IPL_SCHED,
 	    hdaudio_pci_intr, sc);
 	if (sc->sc_ih == NULL) {
 		aprint_error_dev(self, "couldn't establish interrupt");

Reply via email to