From nobody Fri Nov 21 16:15:03 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4dCgKg6cTNz6HQFj for ; Fri, 21 Nov 2025 16:15:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dCgKg1tpYz3xvF for ; Fri, 21 Nov 2025 16:15:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763741703; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e2AvDcq2GkdDGBThfX2jLR+F0qJuJ8UbZ4K8nPuFXZM=; b=xKbU4jA6u+wI5Dnrnj8Zf145bPLxhR19QuqKvD4S9WQ9UG3xxRUfF/1GL8KZEMYl8CMcMH WJ7voERe3NHgP+/cozOVRuvZTDqRtMw/vJ1q1rm/ffIelhogLnMGnFySNpnFxjBJ8Na77/ 352Nekad9Ke2EdqdfU6+gw7nKbFXdv64PSEWYdzYpHQ8JMXI/0Rw+Zjl1m86Vi5Mjt+9gP zDHrehCp/wbxquU4W1wRMBa+NNtzmTxWlMgIWAB4h7d+i1C56ZBN0/0VRoxlHhx72CIUw4 pbzFfZ7mDIT1wF+xzTRlSvcLpkxRa4bSaAtt/4azTezuROW3W6zRIDBN4zbnFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763741703; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e2AvDcq2GkdDGBThfX2jLR+F0qJuJ8UbZ4K8nPuFXZM=; b=dtoLUcQjPsdsI3fgcTYu7hm75nSli3c5vDBzoCej47KIw0WTV3zIQuhURQgOCPXsa4CZbH I4Z2Y10oLNQc0+Y+aUa5pjXbkF/UPIMERy2V6NpXJfcwPwLANdtgaqTzGzAnjyz4UgtvsJ fiVpQPQwOMBe0e8k7IufAbxGcq2aX9EfZA+7bA6qsHQLW1W1PeZHH+xaAvwInhWaC/kwXp jEP6dNtCMVi4es+Kk4/Ms4NB/7z/vGZBUztj7upGkSKxGJ8eNcFSftGLqbeldcxh9XBM1w lvAr4oZUCY1KhAT31gIr9rQ4vzk48H24eN3tIuMHckB6S40Xd7J13Ua1C93b7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1763741703; a=rsa-sha256; cv=none; b=qpTe/WemfapFqhMXxJVoR16CNuDkhmsTgOREp/SgAjm/cd6BeI9jol2eS5bYroqia60iW6 imhkmOdh0m2ptgpEmI3QK4wMSH13p7oL5VedqWm44oYASDRR9oUI5LMkjttKp/EeK6/Z+U 5xJzPTH88w49rlYOcIkGlGtpIAnfP1etNjWhAZjhqUtO7dhM0KesmaBcBU3QGgo9wGcNRr qblY5xtikblyHycA+tcCtKVoAf393P0L+5Uq2IUy25WVWiZeVmRERrE8H7J5LfCf0uZ0Zr 2A4p/OmmtrmU2woxErrHI3EjGZK/uu+m8TnvvNHsNAqboqAWry8+uGqA0CYWrw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dCgKg10T5z4QG for ; Fri, 21 Nov 2025 16:15:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 369f8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 21 Nov 2025 16:15:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Christos Margiolis Subject: git: 9d18115ca0ab - main - sound: Retire snd_mtx* wrappers List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9d18115ca0ab0ef3f34173d4e2bdabec916d0b60 Auto-Submitted: auto-generated Date: Fri, 21 Nov 2025 16:15:03 +0000 Message-Id: <69209007.369f8.65e30118@gitrepo.freebsd.org> The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=9d18115ca0ab0ef3f34173d4e2bdabec916d0b60 commit 9d18115ca0ab0ef3f34173d4e2bdabec916d0b60 Author: Christos Margiolis AuthorDate: 2025-11-21 16:14:33 +0000 Commit: Christos Margiolis CommitDate: 2025-11-21 16:14:47 +0000 sound: Retire snd_mtx* wrappers Do not create mutexes with snd_mtxcreate(). It doesn't provide any value, plus it first allocates the mutex with malloc(9). Allocate mutexes in the stack and use mtx_* functions directly instead of the snd_mtx* wrappers. Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: kib, markj Differential Revision: https://reviews.freebsd.org/D53855 --- sys/arm/allwinner/a10_codec.c | 10 ++-- sys/arm/freescale/imx/imx6_ssi.c | 20 +++---- sys/arm/freescale/vybrid/vf_sai.c | 20 +++---- sys/dev/sound/dummy.c | 29 +++++----- sys/dev/sound/pci/als4000.c | 50 ++++++++--------- sys/dev/sound/pci/atiixp.c | 18 +++--- sys/dev/sound/pci/cmi.c | 54 +++++++++--------- sys/dev/sound/pci/emu10k1.c | 57 +++++++++---------- sys/dev/sound/pci/emu10kx-pcm.c | 47 ++++++++-------- sys/dev/sound/pci/envy24.c | 68 +++++++++++------------ sys/dev/sound/pci/envy24ht.c | 69 ++++++++++++----------- sys/dev/sound/pci/es137x.c | 16 +++--- sys/dev/sound/pci/hda/hdaa.c | 6 +- sys/dev/sound/pci/hda/hdac.c | 15 ++--- sys/dev/sound/pci/hda/hdac_private.h | 2 +- sys/dev/sound/pci/hda/hdacc.c | 6 +- sys/dev/sound/pci/hdsp-pcm.c | 28 +++++----- sys/dev/sound/pci/hdsp.c | 35 ++++++------ sys/dev/sound/pci/hdsp.h | 2 +- sys/dev/sound/pci/hdspe-pcm.c | 28 +++++----- sys/dev/sound/pci/hdspe.c | 35 ++++++------ sys/dev/sound/pci/hdspe.h | 2 +- sys/dev/sound/pci/ich.c | 16 +++--- sys/dev/sound/pci/maestro3.c | 17 +++--- sys/dev/sound/pci/solo.c | 18 +++--- sys/dev/sound/pci/spicds.c | 34 ++++++------ sys/dev/sound/pci/t4dwave.c | 29 +++++----- sys/dev/sound/pci/via8233.c | 101 +++++++++++++++++---------------- sys/dev/sound/pci/via82c686.c | 36 ++++++------ sys/dev/sound/pcm/ac97.c | 52 ++++++++--------- sys/dev/sound/pcm/channel.c | 16 +++--- sys/dev/sound/pcm/channel.h | 14 ++--- sys/dev/sound/pcm/dsp.c | 4 +- sys/dev/sound/pcm/mixer.c | 105 +++++++++++++++++------------------ sys/dev/sound/pcm/sound.c | 33 +---------- sys/dev/sound/pcm/sound.h | 24 +++----- sys/dev/sound/usb/uaudio.c | 2 +- 37 files changed, 537 insertions(+), 581 deletions(-) diff --git a/sys/arm/allwinner/a10_codec.c b/sys/arm/allwinner/a10_codec.c index 0a4ba7aa31b2..d3920eddc1f1 100644 --- a/sys/arm/allwinner/a10_codec.c +++ b/sys/arm/allwinner/a10_codec.c @@ -159,7 +159,7 @@ struct a10codec_chinfo { struct a10codec_info { device_t dev; struct resource *res[2]; - struct mtx *lock; + struct mtx lock; bus_dma_tag_t dmat; unsigned dmasize; void *ih; @@ -949,7 +949,7 @@ a10codec_chan_trigger(kobj_t obj, void *data, int go) if (!PCMTRIG_COMMON(go)) return (0); - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); switch (go) { case PCMTRIG_START: ch->run = 1; @@ -964,7 +964,7 @@ a10codec_chan_trigger(kobj_t obj, void *data, int go) default: break; } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return (0); } @@ -1075,7 +1075,7 @@ a10codec_attach(device_t dev) sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK | M_ZERO); sc->cfg = (void *)ofw_bus_search_compatible(dev, compat_data)->ocd_data; sc->dev = dev; - sc->lock = snd_mtxcreate(device_get_nameunit(dev), "a10codec softc"); + mtx_init(&sc->lock, device_get_nameunit(dev), "a10codec_softc", MTX_DEF); if (bus_alloc_resources(dev, a10codec_spec, sc->res)) { device_printf(dev, "cannot allocate resources for device\n"); @@ -1180,7 +1180,7 @@ a10codec_attach(device_t dev) fail: bus_release_resources(dev, a10codec_spec, sc->res); - snd_mtxfree(sc->lock); + mtx_destroy(&sc->lock); free(sc, M_DEVBUF); return (ENXIO); diff --git a/sys/arm/freescale/imx/imx6_ssi.c b/sys/arm/freescale/imx/imx6_ssi.c index 5a0e671f15a2..76870cfb29c9 100644 --- a/sys/arm/freescale/imx/imx6_ssi.c +++ b/sys/arm/freescale/imx/imx6_ssi.c @@ -173,7 +173,7 @@ struct sc_info { bus_space_tag_t bst; bus_space_handle_t bsh; device_t dev; - struct mtx *lock; + struct mtx lock; void *ih; int pos; int dma_size; @@ -242,10 +242,10 @@ ssimixer_init(struct snd_mixer *m) mask = SOUND_MASK_PCM; mask |= SOUND_MASK_VOLUME; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); pcm_setflags(scp->dev, pcm_getflags(scp->dev) | SD_F_SOFTPCMVOL); mix_setdevs(m, mask); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return (0); } @@ -290,14 +290,14 @@ ssichan_init(kobj_t obj, void *devinfo, struct snd_dbuf *b, scp = (struct sc_pcminfo *)devinfo; sc = scp->sc; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); ch = &scp->chan[0]; ch->dir = dir; ch->run = 0; ch->buffer = b; ch->channel = c; ch->parent = scp; - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); if (sndbuf_setup(ch->buffer, sc->buf_base, sc->dma_size) != 0) { device_printf(scp->dev, "Can't setup sndbuf.\n"); @@ -318,9 +318,9 @@ ssichan_free(kobj_t obj, void *data) device_printf(scp->dev, "ssichan_free()\n"); #endif - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); /* TODO: free channel buffer */ - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return (0); } @@ -565,7 +565,7 @@ ssichan_trigger(kobj_t obj, void *data, int go) scp = ch->parent; sc = scp->sc; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); switch (go) { case PCMTRIG_START: @@ -590,7 +590,7 @@ ssichan_trigger(kobj_t obj, void *data, int go) break; } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return (0); } @@ -736,7 +736,7 @@ ssi_attach(device_t dev) sc->pos = 0; sc->conf = malloc(sizeof(struct sdma_conf), M_DEVBUF, M_WAITOK | M_ZERO); - sc->lock = snd_mtxcreate(device_get_nameunit(dev), "ssi softc"); + mtx_init(&sc->lock, device_get_nameunit(dev), "ssi softc"); if (sc->lock == NULL) { device_printf(dev, "Can't create mtx\n"); return (ENXIO); diff --git a/sys/arm/freescale/vybrid/vf_sai.c b/sys/arm/freescale/vybrid/vf_sai.c index 9c0125768fee..6ccfcae2bc2e 100644 --- a/sys/arm/freescale/vybrid/vf_sai.c +++ b/sys/arm/freescale/vybrid/vf_sai.c @@ -138,7 +138,7 @@ struct sc_info { bus_space_tag_t bst; bus_space_handle_t bsh; device_t dev; - struct mtx *lock; + struct mtx lock; uint32_t speed; uint32_t period; void *ih; @@ -206,10 +206,10 @@ saimixer_init(struct snd_mixer *m) mask = SOUND_MASK_PCM; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); pcm_setflags(scp->dev, pcm_getflags(scp->dev) | SD_F_SOFTPCMVOL); mix_setdevs(m, mask); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return (0); } @@ -252,14 +252,14 @@ saichan_init(kobj_t obj, void *devinfo, struct snd_dbuf *b, scp = (struct sc_pcminfo *)devinfo; sc = scp->sc; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); ch = &scp->chan[0]; ch->dir = dir; ch->run = 0; ch->buffer = b; ch->channel = c; ch->parent = scp; - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); if (sndbuf_setup(ch->buffer, sc->buf_base, sc->dma_size) != 0) { device_printf(scp->dev, "Can't setup sndbuf.\n"); @@ -280,9 +280,9 @@ saichan_free(kobj_t obj, void *data) device_printf(scp->dev, "saichan_free()\n"); #endif - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); /* TODO: free channel buffer */ - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return (0); } @@ -513,7 +513,7 @@ saichan_trigger(kobj_t obj, void *data, int go) struct sc_pcminfo *scp = ch->parent; struct sc_info *sc = scp->sc; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); switch (go) { case PCMTRIG_START: @@ -532,7 +532,7 @@ saichan_trigger(kobj_t obj, void *data, int go) break; } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return (0); } @@ -691,7 +691,7 @@ sai_attach(device_t dev) sc->sr = &rate_map[0]; sc->pos = 0; - sc->lock = snd_mtxcreate(device_get_nameunit(dev), "sai softc"); + mtx_init(&sc->lock, device_get_nameunit(dev), "sai softc"); if (sc->lock == NULL) { device_printf(dev, "Cant create mtx\n"); return (ENXIO); diff --git a/sys/dev/sound/dummy.c b/sys/dev/sound/dummy.c index 0a2717ec418c..74ca1d0c924c 100644 --- a/sys/dev/sound/dummy.c +++ b/sys/dev/sound/dummy.c @@ -64,7 +64,7 @@ struct dummy_softc { int chnum; struct dummy_chan chans[DUMMY_NCHAN]; struct callout callout; - struct mtx *lock; + struct mtx lock; bool stopped; }; @@ -74,7 +74,7 @@ dummy_active(struct dummy_softc *sc) struct dummy_chan *ch; int i; - snd_mtxassert(sc->lock); + mtx_assert(&sc->lock, MA_OWNED); for (i = 0; i < sc->chnum; i++) { ch = &sc->chans[i]; @@ -109,9 +109,9 @@ dummy_chan_io(void *arg) ch->ptr %= ch->buf->bufsize; } else sndbuf_fillsilence(ch->buf); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); chn_intr(ch->chan); - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); } if (!sc->stopped) callout_schedule(&sc->callout, 1); @@ -141,7 +141,7 @@ dummy_chan_init(kobj_t obj, void *devinfo, struct snd_dbuf *b, sc = devinfo; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); ch = &sc->chans[sc->chnum++]; ch->sc = sc; @@ -150,7 +150,7 @@ dummy_chan_init(kobj_t obj, void *devinfo, struct snd_dbuf *b, ch->buf = b; ch->caps = &sc->caps; - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); bufsz = pcm_getbuffersize(sc->dev, 2048, 2048, 65536); buf = malloc(bufsz, M_DEVBUF, M_WAITOK | M_ZERO); @@ -199,10 +199,10 @@ dummy_chan_trigger(kobj_t obj, void *data, int go) struct dummy_chan *ch = data; struct dummy_softc *sc = ch->sc; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); if (sc->stopped) { - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return (0); } @@ -222,7 +222,7 @@ dummy_chan_trigger(kobj_t obj, void *data, int go) break; } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return (0); } @@ -320,8 +320,9 @@ dummy_attach(device_t dev) sc = device_get_softc(dev); sc->dev = dev; - sc->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_dummy softc"); - callout_init_mtx(&sc->callout, sc->lock, 0); + mtx_init(&sc->lock, device_get_nameunit(dev), "snd_dummy softc", + MTX_DEF); + callout_init_mtx(&sc->callout, &sc->lock, 0); sc->cap_fmts[0] = SND_FORMAT(AFMT_S32_LE, 2, 0); sc->cap_fmts[1] = SND_FORMAT(AFMT_S24_LE, 2, 0); @@ -362,12 +363,12 @@ dummy_detach(device_t dev) struct dummy_softc *sc = device_get_softc(dev); int err; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); sc->stopped = true; - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); callout_drain(&sc->callout); err = pcm_unregister(dev); - snd_mtxfree(sc->lock); + mtx_destroy(&sc->lock); return (err); } diff --git a/sys/dev/sound/pci/als4000.c b/sys/dev/sound/pci/als4000.c index a8c3303af74f..aea7cc6d3a64 100644 --- a/sys/dev/sound/pci/als4000.c +++ b/sys/dev/sound/pci/als4000.c @@ -79,7 +79,7 @@ struct sc_info { struct resource *reg, *irq; int regid, irqid; void *ih; - struct mtx *lock; + struct mtx lock; unsigned int bufsz; struct sc_chinfo pch, rch; @@ -208,7 +208,7 @@ alschan_init(kobj_t obj, void *devinfo, struct sc_info *sc = devinfo; struct sc_chinfo *ch; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); if (dir == PCMDIR_PLAY) { ch = &sc->pch; ch->gcr_fifo_status = ALS_GCR_FIFO0_STATUS; @@ -223,7 +223,7 @@ alschan_init(kobj_t obj, void *devinfo, ch->format = SND_FORMAT(AFMT_U8, 1, 0); ch->speed = 8000; ch->buffer = b; - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); if (sndbuf_alloc(ch->buffer, sc->parent_dmat, 0, sc->bufsz) != 0) return NULL; @@ -278,9 +278,9 @@ alschan_getptr(kobj_t obj, void *data) struct sc_info *sc = ch->parent; int32_t pos, sz; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); pos = als_gcr_rd(ch->parent, ch->gcr_fifo_status) & 0xffff; - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); sz = ch->buffer->bufsize; return (2 * sz - pos - 1) % sz; } @@ -397,7 +397,7 @@ alspchan_trigger(kobj_t obj, void *data, int go) if (!PCMTRIG_COMMON(go)) return 0; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); switch(go) { case PCMTRIG_START: als_playback_start(ch); @@ -409,7 +409,7 @@ alspchan_trigger(kobj_t obj, void *data, int go) default: break; } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return 0; } @@ -493,7 +493,7 @@ alsrchan_trigger(kobj_t obj, void *data, int go) struct sc_chinfo *ch = data; struct sc_info *sc = ch->parent; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); switch(go) { case PCMTRIG_START: als_capture_start(ch); @@ -503,7 +503,7 @@ alsrchan_trigger(kobj_t obj, void *data, int go) als_capture_stop(ch); break; } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return 0; } @@ -637,19 +637,19 @@ als_intr(void *p) struct sc_info *sc = (struct sc_info *)p; u_int8_t intr, sb_status; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); intr = als_intr_rd(sc); if (intr & 0x80) { - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); chn_intr(sc->pch.channel); - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); } if (intr & 0x40) { - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); chn_intr(sc->rch.channel); - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); } /* ACK interrupt in PCI core */ @@ -667,7 +667,7 @@ als_intr(void *p) if (sb_status & ALS_IRQ_CR1E) als_ack_read(sc, ALS_CR1E_ACK_PORT); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return; } @@ -749,10 +749,7 @@ als_resource_free(device_t dev, struct sc_info *sc) bus_dma_tag_destroy(sc->parent_dmat); sc->parent_dmat = 0; } - if (sc->lock) { - snd_mtxfree(sc->lock); - sc->lock = NULL; - } + mtx_destroy(&sc->lock); } static int @@ -808,7 +805,8 @@ als_pci_attach(device_t dev) char status[SND_STATUSLEN]; sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK | M_ZERO); - sc->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_als4000 softc"); + mtx_init(&sc->lock, device_get_nameunit(dev), "snd_als4000 softc", + MTX_DEF); sc->dev = dev; pci_enable_busmaster(dev); @@ -882,11 +880,11 @@ als_pci_suspend(device_t dev) { struct sc_info *sc = pcm_getdevinfo(dev); - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); sc->pch.dma_was_active = als_playback_stop(&sc->pch); sc->rch.dma_was_active = als_capture_stop(&sc->rch); als_uninit(sc); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return 0; } @@ -895,16 +893,16 @@ als_pci_resume(device_t dev) { struct sc_info *sc = pcm_getdevinfo(dev); - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); if (als_init(sc) != 0) { device_printf(dev, "unable to reinitialize the card\n"); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return ENXIO; } if (mixer_reinit(dev) != 0) { device_printf(dev, "unable to reinitialize the mixer\n"); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return ENXIO; } @@ -915,7 +913,7 @@ als_pci_resume(device_t dev) if (sc->rch.dma_was_active) { als_capture_start(&sc->rch); } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return 0; } diff --git a/sys/dev/sound/pci/atiixp.c b/sys/dev/sound/pci/atiixp.c index 30f061fd9388..12906ecc6253 100644 --- a/sys/dev/sound/pci/atiixp.c +++ b/sys/dev/sound/pci/atiixp.c @@ -129,7 +129,7 @@ struct atiixp_info { uint32_t blkcnt; int registered_channels; - struct mtx *lock; + struct mtx lock; struct callout poll_timer; int poll_ticks, polling; }; @@ -139,9 +139,9 @@ struct atiixp_info { #define atiixp_wr(_sc, _reg, _val) \ bus_space_write_4((_sc)->st, (_sc)->sh, _reg, _val) -#define atiixp_lock(_sc) snd_mtxlock((_sc)->lock) -#define atiixp_unlock(_sc) snd_mtxunlock((_sc)->lock) -#define atiixp_assert(_sc) snd_mtxassert((_sc)->lock) +#define atiixp_lock(_sc) mtx_lock(&(_sc)->lock) +#define atiixp_unlock(_sc) mtx_unlock(&(_sc)->lock) +#define atiixp_assert(_sc) mtx_assert(&(_sc)->lock, MA_OWNED) static uint32_t atiixp_fmt_32bit[] = { SND_FORMAT(AFMT_S16_LE, 2, 0), @@ -1019,7 +1019,7 @@ atiixp_chip_post_init(void *arg) if (sc->codec_not_ready_bits == 0) { /* wait for the interrupts to happen */ do { - msleep(sc, sc->lock, PWAIT, "ixpslp", max(hz / 10, 1)); + msleep(sc, &sc->lock, PWAIT, "ixpslp", max(hz / 10, 1)); if (sc->codec_not_ready_bits != 0) break; } while (--timeout); @@ -1157,10 +1157,7 @@ atiixp_release_resource(struct atiixp_info *sc) bus_dma_tag_destroy(sc->sgd_dmat); sc->sgd_dmat = NULL; } - if (sc->lock) { - snd_mtxfree(sc->lock); - sc->lock = NULL; - } + mtx_destroy(&sc->lock); free(sc, M_DEVBUF); } @@ -1190,7 +1187,8 @@ atiixp_pci_attach(device_t dev) int i; sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK | M_ZERO); - sc->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_atiixp softc"); + mtx_init(&sc->lock, device_get_nameunit(dev), "snd_atiixp softc", + MTX_DEF); sc->dev = dev; callout_init(&sc->poll_timer, 1); diff --git a/sys/dev/sound/pci/cmi.c b/sys/dev/sound/pci/cmi.c index 28427d449c8d..99925d236c08 100644 --- a/sys/dev/sound/pci/cmi.c +++ b/sys/dev/sound/pci/cmi.c @@ -116,7 +116,7 @@ struct sc_info { struct resource *reg, *irq; int regid, irqid; void *ih; - struct mtx *lock; + struct mtx lock; int spdif_enabled; unsigned int bufsz; @@ -361,13 +361,13 @@ cmichan_init(kobj_t obj, void *devinfo, } ch->dir = dir; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); if (ch->dir == PCMDIR_PLAY) { cmi_dma_prog(sc, ch, CMPCI_REG_DMA0_BASE); } else { cmi_dma_prog(sc, ch, CMPCI_REG_DMA1_BASE); } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return ch; } @@ -394,7 +394,7 @@ cmichan_setformat(kobj_t obj, void *data, u_int32_t format) f |= CMPCI_REG_FORMAT_MONO; } - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); if (ch->dir == PCMDIR_PLAY) { cmi_partial_wr4(ch->parent, CMPCI_REG_CHANNEL_FORMAT, @@ -408,7 +408,7 @@ cmichan_setformat(kobj_t obj, void *data, u_int32_t format) CMPCI_REG_CH1_FORMAT_MASK, f); } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); ch->fmt = format; return 0; @@ -422,7 +422,7 @@ cmichan_setspeed(kobj_t obj, void *data, u_int32_t speed) u_int32_t r, rsp __unused; r = cmpci_rate_to_regvalue(speed); - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); if (ch->dir == PCMDIR_PLAY) { if (speed < 44100) { /* disable if req before rate change */ @@ -450,7 +450,7 @@ cmichan_setspeed(kobj_t obj, void *data, u_int32_t speed) rsp >>= CMPCI_REG_ADC_FS_SHIFT; rsp &= CMPCI_REG_ADC_FS_MASK; } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); ch->spd = cmpci_regvalue_to_rate(r); DEB(printf("cmichan_setspeed (%s) %d -> %d (%d)\n", @@ -484,7 +484,7 @@ cmichan_trigger(kobj_t obj, void *data, int go) if (!PCMTRIG_COMMON(go)) return 0; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); if (ch->dir == PCMDIR_PLAY) { switch(go) { case PCMTRIG_START: @@ -506,7 +506,7 @@ cmichan_trigger(kobj_t obj, void *data, int go) break; } } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return 0; } @@ -517,13 +517,13 @@ cmichan_getptr(kobj_t obj, void *data) struct sc_info *sc = ch->parent; u_int32_t physptr, bufptr, sz; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); if (ch->dir == PCMDIR_PLAY) { physptr = cmi_rd(sc, CMPCI_REG_DMA0_BASE, 4); } else { physptr = cmi_rd(sc, CMPCI_REG_DMA1_BASE, 4); } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); sz = ch->buffer->bufsize; bufptr = (physptr - ch->phys_buf + sz - ch->bps) % sz; @@ -538,7 +538,7 @@ cmi_intr(void *data) u_int32_t intrstat; u_int32_t toclear; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); intrstat = cmi_rd(sc, CMPCI_REG_INTR_STATUS, 4); if ((intrstat & CMPCI_REG_ANY_INTR) != 0) { toclear = 0; @@ -554,7 +554,7 @@ cmi_intr(void *data) if (toclear) { cmi_clr4(sc, CMPCI_REG_INTR_CTRL, toclear); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); /* Signal interrupts to channel */ if (intrstat & CMPCI_REG_CH0_INTR) { @@ -565,14 +565,14 @@ cmi_intr(void *data) chn_intr(sc->rch.channel); } - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); cmi_set4(sc, CMPCI_REG_INTR_CTRL, toclear); } } if(sc->mpu_intr) { (sc->mpu_intr)(sc->mpu); } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return; } @@ -799,10 +799,10 @@ cmi_muninit(struct mpu401 *arg, void *cookie) { struct sc_info *sc = cookie; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); sc->mpu_intr = NULL; sc->mpu = NULL; - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return 0; } @@ -933,7 +933,8 @@ cmi_attach(device_t dev) char status[SND_STATUSLEN]; sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK | M_ZERO); - sc->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_cmi softc"); + mtx_init(&sc->lock, device_get_nameunit(dev), "snd_cmi softc", + MTX_DEF); pci_enable_busmaster(dev); sc->dev = dev; @@ -1007,8 +1008,7 @@ cmi_attach(device_t dev) bus_release_resource(dev, SYS_RES_IRQ, sc->irqid, sc->irq); if (sc->reg) bus_release_resource(dev, SYS_RES_IOPORT, sc->regid, sc->reg); - if (sc->lock) - snd_mtxfree(sc->lock); + mtx_destroy(&sc->lock); if (sc) free(sc, M_DEVBUF); @@ -1037,7 +1037,7 @@ cmi_detach(device_t dev) if (sc->mpu_reg) bus_release_resource(dev, SYS_RES_IOPORT, sc->mpu_regid, sc->mpu_reg); - snd_mtxfree(sc->lock); + mtx_destroy(&sc->lock); free(sc, M_DEVBUF); return 0; @@ -1048,11 +1048,11 @@ cmi_suspend(device_t dev) { struct sc_info *sc = pcm_getdevinfo(dev); - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); sc->pch.dma_was_active = cmi_ch0_stop(sc, &sc->pch); sc->rch.dma_was_active = cmi_ch1_stop(sc, &sc->rch); cmi_power(sc, 3); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return 0; } @@ -1061,17 +1061,17 @@ cmi_resume(device_t dev) { struct sc_info *sc = pcm_getdevinfo(dev); - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); cmi_power(sc, 0); if (cmi_init(sc) != 0) { device_printf(dev, "unable to reinitialize the card\n"); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return ENXIO; } if (mixer_reinit(dev) == -1) { device_printf(dev, "unable to reinitialize the mixer\n"); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return ENXIO; } @@ -1086,7 +1086,7 @@ cmi_resume(device_t dev) cmichan_setformat(NULL, &sc->rch, sc->rch.fmt); cmi_ch1_start(sc, &sc->rch); } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return 0; } diff --git a/sys/dev/sound/pci/emu10k1.c b/sys/dev/sound/pci/emu10k1.c index a85031977f4b..da2ddc99f5a1 100644 --- a/sys/dev/sound/pci/emu10k1.c +++ b/sys/dev/sound/pci/emu10k1.c @@ -218,7 +218,7 @@ struct sc_info { struct resource *reg, *irq; void *ih; - struct mtx *lock; + struct mtx lock; unsigned int bufsz; int timer, timerinterval; @@ -820,10 +820,10 @@ emupchan_init(kobj_t obj, void *devinfo, struct snd_dbuf *b, ch->blksz = sc->bufsz / 2; ch->fmt = SND_FORMAT(AFMT_U8, 1, 0); ch->spd = 8000; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); ch->master = emu_valloc(sc); ch->slave = emu_valloc(sc); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); r = (emu_vinit(sc, ch->master, ch->slave, sc->bufsz, ch->buffer)) ? NULL : ch; @@ -837,9 +837,9 @@ emupchan_free(kobj_t obj, void *data) struct sc_info *sc = ch->parent; int r; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); r = emu_memfree(sc, ch->buffer->buf); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return r; } @@ -869,9 +869,9 @@ emupchan_setblocksize(kobj_t obj, void *data, u_int32_t blocksize) struct sc_info *sc = ch->parent; ch->blksz = blocksize; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); emu_settimer(sc); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return blocksize; } @@ -884,7 +884,7 @@ emupchan_trigger(kobj_t obj, void *data, int go) if (!PCMTRIG_COMMON(go)) return 0; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); if (go == PCMTRIG_START) { emu_vsetup(ch); emu_vwrite(sc, ch->master); @@ -901,7 +901,7 @@ emupchan_trigger(kobj_t obj, void *data, int go) } ch->run = (go == PCMTRIG_START) ? 1 : 0; emu_vtrigger(sc, ch->master, ch->run); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return 0; } @@ -912,9 +912,9 @@ emupchan_getptr(kobj_t obj, void *data) struct sc_info *sc = ch->parent; int r; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); r = emu_vpos(sc, ch->master); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return r; } @@ -984,10 +984,10 @@ emurchan_init(kobj_t obj, void *devinfo, struct snd_dbuf *b, if (sndbuf_alloc(ch->buffer, sc->parent_dmat, 0, sc->bufsz) != 0) return NULL; else { - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); emu_wrptr(sc, 0, ch->basereg, ch->buffer->buf_addr); emu_wrptr(sc, 0, ch->sizereg, 0); /* off */ - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return ch; } } @@ -1027,9 +1027,9 @@ emurchan_setblocksize(kobj_t obj, void *data, u_int32_t blocksize) struct sc_info *sc = ch->parent; ch->blksz = blocksize; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); emu_settimer(sc); - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return blocksize; } @@ -1069,7 +1069,7 @@ emurchan_trigger(kobj_t obj, void *data, int go) sz = EMU_RECBS_BUFSIZE_4096; } - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); switch(go) { case PCMTRIG_START: ch->run = 1; @@ -1111,7 +1111,7 @@ emurchan_trigger(kobj_t obj, void *data, int go) default: break; } - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return 0; } @@ -1123,9 +1123,9 @@ emurchan_getptr(kobj_t obj, void *data) struct sc_info *sc = ch->parent; int r; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); r = emu_rdptr(sc, 0, ch->idxreg) & 0x0000ffff; - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return r; } @@ -1171,9 +1171,9 @@ emu_muninit(struct mpu401 *arg, void *cookie) { struct sc_info *sc = cookie; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); sc->mpu_intr = NULL; - snd_mtxunlock(sc->lock); + mtx_unlock(&sc->lock); return 0; } @@ -1216,7 +1216,7 @@ emu_intr(void *data) struct sc_info *sc = data; u_int32_t stat, ack, i, x; - snd_mtxlock(sc->lock); + mtx_lock(&sc->lock); while (1) { stat = emu_rd(sc, EMU_IPR, 4); if (stat == 0) *** 3073 LINES SKIPPED ***