Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F157322327
D53855.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
95 KB
Referenced Files
None
Subscribers
None
D53855.diff
View Options
diff --git a/sys/arm/allwinner/a10_codec.c b/sys/arm/allwinner/a10_codec.c
--- a/sys/arm/allwinner/a10_codec.c
+++ b/sys/arm/allwinner/a10_codec.c
@@ -159,7 +159,7 @@
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 @@
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 @@
default:
break;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -1075,7 +1075,7 @@
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 @@
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
--- a/sys/arm/freescale/imx/imx6_ssi.c
+++ b/sys/arm/freescale/imx/imx6_ssi.c
@@ -173,7 +173,7 @@
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 @@
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 @@
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 @@
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 @@
scp = ch->parent;
sc = scp->sc;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
switch (go) {
case PCMTRIG_START:
@@ -590,7 +590,7 @@
break;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -736,7 +736,7 @@
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
--- a/sys/arm/freescale/vybrid/vf_sai.c
+++ b/sys/arm/freescale/vybrid/vf_sai.c
@@ -138,7 +138,7 @@
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 @@
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 @@
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 @@
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 @@
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 @@
break;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -691,7 +691,7 @@
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
--- a/sys/dev/sound/dummy.c
+++ b/sys/dev/sound/dummy.c
@@ -64,7 +64,7 @@
int chnum;
struct dummy_chan chans[DUMMY_NCHAN];
struct callout callout;
- struct mtx *lock;
+ struct mtx lock;
bool stopped;
};
@@ -74,7 +74,7 @@
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 @@
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 @@
sc = devinfo;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
ch = &sc->chans[sc->chnum++];
ch->sc = sc;
@@ -150,7 +150,7 @@
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 @@
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 @@
break;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -320,8 +320,9 @@
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 @@
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
--- a/sys/dev/sound/pci/als4000.c
+++ b/sys/dev/sound/pci/als4000.c
@@ -79,7 +79,7 @@
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 @@
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 @@
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 @@
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 @@
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 @@
default:
break;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return 0;
}
@@ -493,7 +493,7 @@
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 @@
als_capture_stop(ch);
break;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return 0;
}
@@ -637,19 +637,19 @@
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 @@
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 @@
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 @@
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 @@
{
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 @@
{
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 @@
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
--- a/sys/dev/sound/pci/atiixp.c
+++ b/sys/dev/sound/pci/atiixp.c
@@ -129,7 +129,7 @@
uint32_t blkcnt;
int registered_channels;
- struct mtx *lock;
+ struct mtx lock;
struct callout poll_timer;
int poll_ticks, polling;
};
@@ -139,9 +139,9 @@
#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 @@
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 @@
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 @@
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
--- a/sys/dev/sound/pci/cmi.c
+++ b/sys/dev/sound/pci/cmi.c
@@ -116,7 +116,7 @@
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 @@
}
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 @@
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 @@
CMPCI_REG_CH1_FORMAT_MASK,
f);
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
ch->fmt = format;
return 0;
@@ -422,7 +422,7 @@
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 @@
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 @@
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 @@
break;
}
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return 0;
}
@@ -517,13 +517,13 @@
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 @@
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 @@
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 @@
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 @@
{
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 @@
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 @@
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 @@
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 @@
{
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 @@
{
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 @@
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
--- a/sys/dev/sound/pci/emu10k1.c
+++ b/sys/dev/sound/pci/emu10k1.c
@@ -218,7 +218,7 @@
struct resource *reg, *irq;
void *ih;
- struct mtx *lock;
+ struct mtx lock;
unsigned int bufsz;
int timer, timerinterval;
@@ -820,10 +820,10 @@
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 @@
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 @@
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 @@
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 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
default:
break;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return 0;
}
@@ -1123,9 +1123,9 @@
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 @@
{
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 @@
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)
@@ -1262,7 +1262,7 @@
emu_wr(sc, EMU_IPR, stat, 4);
if (ack) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
if (ack & EMU_IPR_INTERVALTIMER) {
x = 0;
@@ -1289,10 +1289,10 @@
chn_intr(sc->rch[2].channel);
}
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
}
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
}
/* -------------------------------------------------------------------- */
@@ -2071,7 +2071,8 @@
char status[SND_STATUSLEN];
sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK | M_ZERO);
- sc->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_emu10k1 softc");
+ mtx_init(&sc->lock, device_get_nameunit(dev), "snd_emu10k1 softc",
+ MTX_DEF);
sc->dev = dev;
sc->type = pci_get_devid(dev);
sc->rev = pci_get_revid(dev);
@@ -2147,7 +2148,7 @@
if (sc->ih) bus_teardown_intr(dev, sc->irq, sc->ih);
if (sc->irq) bus_release_resource(dev, SYS_RES_IRQ, 0, sc->irq);
if (sc->parent_dmat) bus_dma_tag_destroy(sc->parent_dmat);
- if (sc->lock) snd_mtxfree(sc->lock);
+ mtx_destroy(&sc->lock);
free(sc, M_DEVBUF);
return ENXIO;
}
@@ -2170,7 +2171,7 @@
bus_teardown_intr(dev, sc->irq, sc->ih);
bus_release_resource(dev, SYS_RES_IRQ, 0, sc->irq);
bus_dma_tag_destroy(sc->parent_dmat);
- snd_mtxfree(sc->lock);
+ mtx_destroy(&sc->lock);
free(sc, M_DEVBUF);
return 0;
diff --git a/sys/dev/sound/pci/emu10kx-pcm.c b/sys/dev/sound/pci/emu10kx-pcm.c
--- a/sys/dev/sound/pci/emu10kx-pcm.c
+++ b/sys/dev/sound/pci/emu10kx-pcm.c
@@ -90,7 +90,7 @@
#endif
struct emu_pcm_info {
- struct mtx *lock;
+ struct mtx lock;
device_t dev; /* device information */
struct emu_sc_info *card;
struct emu_pcm_pchinfo pch[MAX_CHANNELS]; /* hardware channels */
@@ -771,10 +771,10 @@
if (blocksize > ch->pcm->bufsz)
blocksize = ch->pcm->bufsz;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
ch->blksz = blocksize;
emu_timer_set(sc->card, ch->timer, ch->blksz / ch->buffer->align);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (ch->blksz);
}
@@ -787,7 +787,7 @@
if (!PCMTRIG_COMMON(go))
return (0);
- snd_mtxlock(sc->lock); /* XXX can we trigger on parallel threads ? */
+ mtx_lock(&sc->lock); /* XXX can we trigger on parallel threads ? */
if (go == PCMTRIG_START) {
emu_vsetup(ch->master, ch->fmt, ch->spd);
if (AFMT_CHANNEL(ch->fmt) > 1)
@@ -802,7 +802,7 @@
/* PCM interrupt handler will handle PCMTRIG_STOP event */
ch->run = (go == PCMTRIG_START) ? 1 : 0;
emu_vtrigger(sc->card, ch->master, ch->run);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -970,7 +970,7 @@
sz = EMU_RECBS_BUFSIZE_4096;
}
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
switch (go) {
case PCMTRIG_START:
ch->run = 1;
@@ -999,7 +999,7 @@
default:
break;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -1130,7 +1130,7 @@
sz = EMU_RECBS_BUFSIZE_4096;
}
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
switch (go) {
case PCMTRIG_START:
ch->run = 1;
@@ -1169,7 +1169,7 @@
default:
break;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -1234,24 +1234,24 @@
ack = 0;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if (stat & EMU_IPR_INTERVALTIMER) {
ack |= EMU_IPR_INTERVALTIMER;
for (i = 0; i < MAX_CHANNELS; i++)
if (sc->pch[i].channel) {
if (sc->pch[i].run == 1) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
chn_intr(sc->pch[i].channel);
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
} else
emu_timer_enable(sc->card, sc->pch[i].timer, 0);
}
/* ADC may install timer to get low-latency interrupts */
if ((sc->rch_adc.channel) && (sc->rch_adc.run)) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
chn_intr(sc->rch_adc.channel);
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
}
/*
* EFX does not use timer, because it will fill
@@ -1262,21 +1262,21 @@
if (stat & (EMU_IPR_ADCBUFFULL | EMU_IPR_ADCBUFHALFFULL)) {
ack |= stat & (EMU_IPR_ADCBUFFULL | EMU_IPR_ADCBUFHALFFULL);
if (sc->rch_adc.channel) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
chn_intr(sc->rch_adc.channel);
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
}
}
if (stat & (EMU_IPR_EFXBUFFULL | EMU_IPR_EFXBUFHALFFULL)) {
ack |= stat & (EMU_IPR_EFXBUFFULL | EMU_IPR_EFXBUFHALFFULL);
if (sc->rch_efx.channel) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
chn_intr(sc->rch_efx.channel);
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
}
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (ack);
}
@@ -1349,7 +1349,8 @@
return (ENXIO);
}
- sc->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_emu10kx pcm softc");
+ mtx_init(&sc->lock, device_get_nameunit(dev), "snd_emu10kx pcm softc",
+ MTX_DEF);
sc->dev = dev;
BUS_READ_IVAR(device_get_parent(dev), dev, EMU_VAR_ISEMU10K1, &ivar);
@@ -1483,8 +1484,7 @@
bad:
if (sc->codec)
ac97_destroy(sc->codec);
- if (sc->lock)
- snd_mtxfree(sc->lock);
+ mtx_destroy(&sc->lock);
free(sc, M_DEVBUF);
return (ENXIO);
}
@@ -1503,8 +1503,7 @@
emu_pcm_uninit(sc);
- if (sc->lock)
- snd_mtxfree(sc->lock);
+ mtx_destroy(&sc->lock);
free(sc, M_DEVBUF);
return (0);
diff --git a/sys/dev/sound/pci/envy24.c b/sys/dev/sound/pci/envy24.c
--- a/sys/dev/sound/pci/envy24.c
+++ b/sys/dev/sound/pci/envy24.c
@@ -116,7 +116,7 @@
/* device private data */
struct sc_info {
device_t dev;
- struct mtx *lock;
+ struct mtx lock;
/* Control/Status registor */
struct resource *cs;
@@ -1567,10 +1567,10 @@
#if(0)
device_printf(sc->dev, "envy24chan_init(obj, devinfo, b, c, %d)\n", dir);
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if ((sc->chnum > ENVY24_CHAN_PLAY_SPDIF && dir != PCMDIR_REC) ||
(sc->chnum < ENVY24_CHAN_REC_ADC1 && dir != PCMDIR_PLAY)) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return NULL;
}
num = sc->chnum;
@@ -1589,14 +1589,14 @@
ch->dir = dir;
/* set channel map */
ch->num = envy24_chanmap[num];
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
sndbuf_setup(ch->buffer, ch->data, ch->size);
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
/* these 2 values are dummy */
ch->unit = 4;
ch->blk = 10240;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return ch;
}
@@ -1610,12 +1610,12 @@
#if(0)
device_printf(sc->dev, "envy24chan_free()\n");
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if (ch->data != NULL) {
free(ch->data, M_ENVY24);
ch->data = NULL;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return 0;
}
@@ -1632,21 +1632,21 @@
#if(0)
device_printf(sc->dev, "envy24chan_setformat(obj, data, 0x%08x)\n", format);
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
/* check and get format related information */
if (ch->dir == PCMDIR_PLAY)
emltab = envy24_pemltab;
else
emltab = envy24_remltab;
if (emltab == NULL) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return -1;
}
for (i = 0; emltab[i].format != 0; i++)
if (emltab[i].format == format)
break;
if (emltab[i].format == 0) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return -1;
}
@@ -1670,7 +1670,7 @@
bcnt = ch->size / bsize;
sndbuf_resize(ch->buffer, bcnt, bsize);
#endif
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
#if(0)
device_printf(sc->dev, "envy24chan_setformat(): return 0x%08x\n", 0);
@@ -1723,7 +1723,7 @@
device_printf(sc->dev, "envy24chan_setblocksize(obj, data, %d)\n", blocksize);
#endif
prev = 0x7fffffff;
- /* snd_mtxlock(sc->lock); */
+ /* mtx_lock(&sc->lock); */
for (size = ch->size / 2; size > 0; size /= 2) {
if (abs(size - blocksize) < abs(prev - blocksize))
prev = size;
@@ -1745,7 +1745,7 @@
bsize *= ch->unit;
bcnt = ch->size / bsize;
sndbuf_resize(ch->buffer, bcnt, bsize);
- /* snd_mtxunlock(sc->lock); */
+ /* mtx_unlock(&sc->lock); */
#if(0)
device_printf(sc->dev, "envy24chan_setblocksize(): return %d\n", prev);
@@ -1767,7 +1767,7 @@
device_printf(sc->dev, "envy24chan_trigger(obj, data, %d)\n", go);
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if (ch->dir == PCMDIR_PLAY)
slot = 0;
else
@@ -1862,7 +1862,7 @@
break;
}
fail:
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (error);
}
@@ -1876,10 +1876,10 @@
#if(0)
device_printf(sc->dev, "envy24chan_getptr()\n");
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
ptr = envy24_gethwptr(sc, ch->dir);
rtn = ptr * ch->unit;
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
#if(0)
device_printf(sc->dev, "envy24chan_getptr(): return %d\n",
@@ -1898,7 +1898,7 @@
#if(0)
device_printf(sc->dev, "envy24chan_getcaps()\n");
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if (ch->dir == PCMDIR_PLAY) {
if (sc->run[0] == 0)
rtn = &envy24_playcaps;
@@ -1911,7 +1911,7 @@
else
rtn = &sc->caps[1];
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return rtn;
}
@@ -1945,12 +1945,12 @@
return -1;
/* set volume control rate */
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
envy24_wrmt(sc, ENVY24_MT_VOLRATE, 0x30, 1); /* 0x30 is default value */
mix_setdevs(m, ENVY24_MIX_MASK);
mix_setrecdevs(m, ENVY24_MIX_REC_MASK);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return 0;
}
@@ -2003,7 +2003,7 @@
dev, left, right);
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if (dev == 0) {
for (i = 0; i < sc->dacn; i++) {
sc->cfg->codec->setvolume(sc->dac[i], PCMDIR_PLAY, left, right);
@@ -2020,7 +2020,7 @@
if (hwch > ENVY24_CHAN_PLAY_SPDIF || sc->chan[ch].run)
envy24_setvolume(sc, hwch);
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return right << 8 | left;
}
@@ -2063,7 +2063,7 @@
#if(0)
device_printf(sc->dev, "envy24_intr()\n");
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if (envy24_checkintr(sc, PCMDIR_PLAY)) {
#if(0)
device_printf(sc->dev, "envy24_intr(): play\n");
@@ -2085,9 +2085,9 @@
device_printf(sc->dev, "envy24_intr(): chan[%d].blk = %d\n", i, ch->blk);
#endif
if (ch->run && ch->blk <= feed) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
chn_intr(ch->channel);
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
}
}
sc->intr[0] = ptr;
@@ -2104,15 +2104,15 @@
for (i = ENVY24_CHAN_REC_ADC1; i <= ENVY24_CHAN_REC_SPDIF; i++) {
ch = &sc->chan[i];
if (ch->run && ch->blk <= feed) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
chn_intr(ch->channel);
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
}
}
sc->intr[1] = ptr;
envy24_updintr(sc, PCMDIR_REC);
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return;
}
@@ -2551,7 +2551,8 @@
}
bzero(sc, sizeof(*sc));
- sc->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_envy24 softc");
+ mtx_init(&sc->lock, device_get_nameunit(dev), "snd_envy24 softc",
+ MTX_DEF);
sc->dev = dev;
/* initialize PCI interface */
@@ -2627,8 +2628,7 @@
bus_release_resource(dev, SYS_RES_IOPORT, sc->dsid, sc->ds);
if (sc->mt)
bus_release_resource(dev, SYS_RES_IOPORT, sc->mtid, sc->mt);
- if (sc->lock)
- snd_mtxfree(sc->lock);
+ mtx_destroy(&sc->lock);
free(sc, M_ENVY24);
return err;
}
@@ -2665,7 +2665,7 @@
bus_release_resource(dev, SYS_RES_IOPORT, sc->ddmaid, sc->ddma);
bus_release_resource(dev, SYS_RES_IOPORT, sc->dsid, sc->ds);
bus_release_resource(dev, SYS_RES_IOPORT, sc->mtid, sc->mt);
- snd_mtxfree(sc->lock);
+ mtx_destroy(&sc->lock);
free(sc, M_ENVY24);
return 0;
}
diff --git a/sys/dev/sound/pci/envy24ht.c b/sys/dev/sound/pci/envy24ht.c
--- a/sys/dev/sound/pci/envy24ht.c
+++ b/sys/dev/sound/pci/envy24ht.c
@@ -125,7 +125,7 @@
/* device private data */
struct sc_info {
device_t dev;
- struct mtx *lock;
+ struct mtx lock;
/* Control/Status registor */
struct resource *cs;
@@ -1476,11 +1476,11 @@
#if(0)
device_printf(sc->dev, "envy24htchan_init(obj, devinfo, b, c, %d)\n", dir);
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
#if 0
if ((sc->chnum > ENVY24HT_CHAN_PLAY_SPDIF && dir != PCMDIR_REC) ||
(sc->chnum < ENVY24HT_CHAN_REC_ADC1 && dir != PCMDIR_PLAY)) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return NULL;
}
#endif
@@ -1500,14 +1500,14 @@
ch->dir = dir;
/* set channel map */
ch->num = envy24ht_chanmap[num];
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
sndbuf_setup(ch->buffer, ch->data, ch->size);
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
/* these 2 values are dummy */
ch->unit = 4;
ch->blk = 10240;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return ch;
}
@@ -1521,12 +1521,12 @@
#if(0)
device_printf(sc->dev, "envy24htchan_free()\n");
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if (ch->data != NULL) {
free(ch->data, M_ENVY24HT);
ch->data = NULL;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return 0;
}
@@ -1543,21 +1543,21 @@
#if(0)
device_printf(sc->dev, "envy24htchan_setformat(obj, data, 0x%08x)\n", format);
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
/* check and get format related information */
if (ch->dir == PCMDIR_PLAY)
emltab = envy24ht_pemltab;
else
emltab = envy24ht_remltab;
if (emltab == NULL) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return -1;
}
for (i = 0; emltab[i].format != 0; i++)
if (emltab[i].format == format)
break;
if (emltab[i].format == 0) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return -1;
}
@@ -1581,7 +1581,7 @@
bcnt = ch->size / bsize;
sndbuf_resize(ch->buffer, bcnt, bsize);
#endif
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
#if(0)
device_printf(sc->dev, "envy24htchan_setformat(): return 0x%08x\n", 0);
@@ -1634,7 +1634,7 @@
device_printf(sc->dev, "envy24htchan_setblocksize(obj, data, %d)\n", blocksize);
#endif
prev = 0x7fffffff;
- /* snd_mtxlock(sc->lock); */
+ /* mtx_lock(&sc->lock); */
for (size = ch->size / 2; size > 0; size /= 2) {
if (abs(size - blocksize) < abs(prev - blocksize))
prev = size;
@@ -1656,7 +1656,7 @@
bsize *= ch->unit;
bcnt = ch->size / bsize;
sndbuf_resize(ch->buffer, bcnt, bsize);
- /* snd_mtxunlock(sc->lock); */
+ /* mtx_unlock(&sc->lock); */
#if(0)
device_printf(sc->dev, "envy24htchan_setblocksize(): return %d\n", prev);
@@ -1678,7 +1678,7 @@
device_printf(sc->dev, "envy24htchan_trigger(obj, data, %d)\n", go);
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if (ch->dir == PCMDIR_PLAY)
slot = 0;
else
@@ -1771,7 +1771,7 @@
break;
}
fail:
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (error);
}
@@ -1785,10 +1785,10 @@
#if(0)
device_printf(sc->dev, "envy24htchan_getptr()\n");
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
ptr = envy24ht_gethwptr(sc, ch->dir);
rtn = ptr * ch->unit;
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
#if(0)
device_printf(sc->dev, "envy24htchan_getptr(): return %d\n",
@@ -1807,7 +1807,7 @@
#if(0)
device_printf(sc->dev, "envy24htchan_getcaps()\n");
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if (ch->dir == PCMDIR_PLAY) {
if (sc->run[0] == 0)
rtn = &envy24ht_playcaps;
@@ -1820,7 +1820,7 @@
else
rtn = &sc->caps[1];
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return rtn;
}
@@ -1854,7 +1854,7 @@
return -1;
/* set volume control rate */
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
#if 0
envy24ht_wrmt(sc, ENVY24HT_MT_VOLRATE, 0x30, 1); /* 0x30 is default value */
#endif
@@ -1864,7 +1864,7 @@
mix_setdevs(m, ENVY24HT_MIX_MASK);
mix_setrecdevs(m, ENVY24HT_MIX_REC_MASK);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return 0;
}
@@ -1917,7 +1917,7 @@
dev, left, right);
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if (dev == 0) {
for (i = 0; i < sc->dacn; i++) {
sc->cfg->codec->setvolume(sc->dac[i], PCMDIR_PLAY, left, right);
@@ -1934,7 +1934,7 @@
if (hwch > ENVY24HT_CHAN_PLAY_SPDIF || sc->chan[ch].run)
envy24ht_setvolume(sc, hwch);
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return right << 8 | left;
}
@@ -1977,7 +1977,7 @@
#if(0)
device_printf(sc->dev, "envy24ht_intr()\n");
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if (envy24ht_checkintr(sc, PCMDIR_PLAY)) {
#if(0)
device_printf(sc->dev, "envy24ht_intr(): play\n");
@@ -1999,9 +1999,9 @@
device_printf(sc->dev, "envy24ht_intr(): chan[%d].blk = %d\n", i, ch->blk);
#endif
if (ch->run && ch->blk <= feed) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
chn_intr(ch->channel);
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
}
}
sc->intr[0] = ptr;
@@ -2018,15 +2018,15 @@
for (i = ENVY24HT_CHAN_REC_ADC1; i <= ENVY24HT_CHAN_REC_SPDIF; i++) {
ch = &sc->chan[i];
if (ch->run && ch->blk <= feed) {
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
chn_intr(ch->channel);
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
}
}
sc->intr[1] = ptr;
envy24ht_updintr(sc, PCMDIR_REC);
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return;
}
@@ -2455,8 +2455,8 @@
}
bzero(sc, sizeof(*sc));
- sc->lock = snd_mtxcreate(device_get_nameunit(dev),
- "snd_envy24ht softc");
+ mtx_init(&sc->lock, device_get_nameunit(dev), "snd_eny24ht softc",
+ MTX_DEF);
sc->dev = dev;
/* initialize PCI interface */
@@ -2524,8 +2524,7 @@
bus_release_resource(dev, SYS_RES_IOPORT, sc->csid, sc->cs);
if (sc->mt)
bus_release_resource(dev, SYS_RES_IOPORT, sc->mtid, sc->mt);
- if (sc->lock)
- snd_mtxfree(sc->lock);
+ mtx_destroy(&sc->lock);
free(sc, M_ENVY24HT);
return err;
}
@@ -2560,7 +2559,7 @@
bus_release_resource(dev, SYS_RES_IRQ, sc->irqid, sc->irq);
bus_release_resource(dev, SYS_RES_IOPORT, sc->csid, sc->cs);
bus_release_resource(dev, SYS_RES_IOPORT, sc->mtid, sc->mt);
- snd_mtxfree(sc->lock);
+ mtx_destroy(&sc->lock);
free(sc, M_ENVY24HT);
return 0;
}
diff --git a/sys/dev/sound/pci/es137x.c b/sys/dev/sound/pci/es137x.c
--- a/sys/dev/sound/pci/es137x.c
+++ b/sys/dev/sound/pci/es137x.c
@@ -224,14 +224,14 @@
uint32_t sctrl;
uint32_t escfg;
struct es_chinfo ch[ES_NCHANS];
- struct mtx *lock;
+ struct mtx lock;
struct callout poll_timer;
int poll_ticks, polling;
};
-#define ES_LOCK(sc) snd_mtxlock((sc)->lock)
-#define ES_UNLOCK(sc) snd_mtxunlock((sc)->lock)
-#define ES_LOCK_ASSERT(sc) snd_mtxassert((sc)->lock)
+#define ES_LOCK(sc) mtx_lock(&(sc)->lock)
+#define ES_UNLOCK(sc) mtx_unlock(&(sc)->lock)
+#define ES_LOCK_ASSERT(sc) mtx_assert(&(sc)->lock, MA_OWNED)
/* prototypes */
static void es_intr(void *);
@@ -1712,7 +1712,8 @@
uint32_t devid;
es = malloc(sizeof *es, M_DEVBUF, M_WAITOK | M_ZERO);
- es->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_es137x softc");
+ mtx_init(&es->lock, device_get_nameunit(dev), "snd_es137x softc",
+ MTX_DEF);
es->dev = dev;
es->escfg = 0;
mapped = 0;
@@ -1888,8 +1889,7 @@
ac97_destroy(codec);
if (es->reg)
bus_release_resource(dev, es->regtype, es->regid, es->reg);
- if (es->lock)
- snd_mtxfree(es->lock);
+ mtx_destroy(&es->lock);
if (es)
free(es, M_DEVBUF);
return (ENXIO);
@@ -1919,7 +1919,7 @@
bus_release_resource(dev, SYS_RES_IRQ, es->irqid, es->irq);
bus_release_resource(dev, es->regtype, es->regid, es->reg);
bus_dma_tag_destroy(es->parent_dmat);
- snd_mtxfree(es->lock);
+ mtx_destroy(&es->lock);
free(es, M_DEVBUF);
return (0);
diff --git a/sys/dev/sound/pci/hda/hdaa.c b/sys/dev/sound/pci/hda/hdaa.c
--- a/sys/dev/sound/pci/hda/hdaa.c
+++ b/sys/dev/sound/pci/hda/hdaa.c
@@ -47,9 +47,9 @@
#include "mixer_if.h"
-#define hdaa_lock(devinfo) snd_mtxlock((devinfo)->lock)
-#define hdaa_unlock(devinfo) snd_mtxunlock((devinfo)->lock)
-#define hdaa_lockassert(devinfo) snd_mtxassert((devinfo)->lock)
+#define hdaa_lock(devinfo) mtx_lock((devinfo)->lock)
+#define hdaa_unlock(devinfo) mtx_unlock((devinfo)->lock)
+#define hdaa_lockassert(devinfo) mtx_assert((devinfo)->lock, MA_OWNED)
static const struct {
const char *key;
diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c
--- a/sys/dev/sound/pci/hda/hdac.c
+++ b/sys/dev/sound/pci/hda/hdac.c
@@ -51,9 +51,9 @@
#define HDA_DRV_TEST_REV "20120126_0002"
-#define hdac_lock(sc) snd_mtxlock((sc)->lock)
-#define hdac_unlock(sc) snd_mtxunlock((sc)->lock)
-#define hdac_lockassert(sc) snd_mtxassert((sc)->lock)
+#define hdac_lock(sc) mtx_lock(&(sc)->lock)
+#define hdac_unlock(sc) mtx_unlock(&(sc)->lock)
+#define hdac_lockassert(sc) mtx_assert(&(sc)->lock, MA_OWNED)
#define HDAC_QUIRK_64BIT (1 << 0)
#define HDAC_QUIRK_DMAPOS (1 << 1)
@@ -1171,7 +1171,8 @@
}
}
- sc->lock = snd_mtxcreate(device_get_nameunit(dev), "HDA driver mutex");
+ mtx_init(&sc->lock, device_get_nameunit(dev), "HDA driver mutex",
+ MTX_DEF);
sc->dev = dev;
TASK_INIT(&sc->unsolq_task, 0, hdac_unsolq_task, sc);
callout_init(&sc->poll_callout, 1);
@@ -1374,7 +1375,7 @@
hdac_dma_free(sc, &sc->rirb_dma);
hdac_dma_free(sc, &sc->corb_dma);
hdac_mem_free(sc);
- snd_mtxfree(sc->lock);
+ mtx_destroy(&sc->lock);
return (ENXIO);
}
@@ -1798,7 +1799,7 @@
sc->chan_dmat = NULL;
}
hdac_mem_free(sc);
- snd_mtxfree(sc->lock);
+ mtx_destroy(&sc->lock);
return (0);
}
@@ -1888,7 +1889,7 @@
{
struct hdac_softc *sc = device_get_softc(dev);
- return (sc->lock);
+ return (&sc->lock);
}
static uint32_t
diff --git a/sys/dev/sound/pci/hda/hdac_private.h b/sys/dev/sound/pci/hda/hdac_private.h
--- a/sys/dev/sound/pci/hda/hdac_private.h
+++ b/sys/dev/sound/pci/hda/hdac_private.h
@@ -162,7 +162,7 @@
struct hdac_softc {
device_t dev;
- struct mtx *lock;
+ struct mtx lock;
struct intr_config_hook intrhook;
diff --git a/sys/dev/sound/pci/hda/hdacc.c b/sys/dev/sound/pci/hda/hdacc.c
--- a/sys/dev/sound/pci/hda/hdacc.c
+++ b/sys/dev/sound/pci/hda/hdacc.c
@@ -60,9 +60,9 @@
struct hdacc_fg *fgs;
};
-#define hdacc_lock(codec) snd_mtxlock((codec)->lock)
-#define hdacc_unlock(codec) snd_mtxunlock((codec)->lock)
-#define hdacc_lockassert(codec) snd_mtxassert((codec)->lock)
+#define hdacc_lock(codec) mtx_lock((codec)->lock)
+#define hdacc_unlock(codec) mtx_unlock((codec)->lock)
+#define hdacc_lockassert(codec) mtx_assert((codec)->lock, MA_OWNED)
MALLOC_DEFINE(M_HDACC, "hdacc", "HDA CODEC");
diff --git a/sys/dev/sound/pci/hdsp-pcm.c b/sys/dev/sound/pci/hdsp-pcm.c
--- a/sys/dev/sound/pci/hdsp-pcm.c
+++ b/sys/dev/sound/pci/hdsp-pcm.c
@@ -321,10 +321,10 @@
if (hdsp_channel_rec_ports(scp->hc))
mask |= SOUND_MASK_RECLEV;
- 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);
}
@@ -676,7 +676,7 @@
device_printf(scp->dev, "hdspchan_free()\n");
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if (ch->data != NULL) {
free(ch->data, M_HDSP);
ch->data = NULL;
@@ -685,7 +685,7 @@
free(ch->caps, M_HDSP);
ch->caps = NULL;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -702,7 +702,7 @@
scp = devinfo;
sc = scp->sc;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
num = scp->chnum;
ch = &scp->chan[num];
@@ -745,7 +745,7 @@
ch->dir = dir;
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
if (sndbuf_setup(ch->buffer, ch->data, ch->size) != 0) {
device_printf(scp->dev, "Can't setup sndbuf.\n");
@@ -767,7 +767,7 @@
scp = ch->parent;
sc = scp->sc;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
switch (go) {
case PCMTRIG_START:
#if 0
@@ -795,7 +795,7 @@
break;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -812,9 +812,9 @@
scp = ch->parent;
sc = scp->sc;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
ret = hdsp_read_2(sc, HDSP_STATUS_REG);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
pos = ret & HDSP_BUF_POSITION_MASK;
pos %= (2 * sc->period * sizeof(uint32_t)); /* Double buffer. */
@@ -951,12 +951,12 @@
}
}
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
sc->ctrl_register &= ~HDSP_LAT_MASK;
sc->ctrl_register |= hdsp_encode_latency(hl->n);
hdsp_write_4(sc, HDSP_CONTROL_REG, sc->ctrl_register);
sc->period = hl->period;
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
#if 0
device_printf(scp->dev, "New period=%d\n", sc->period);
@@ -1034,9 +1034,9 @@
for (i = 0; i < scp->chnum; i++) {
ch = &scp->chan[i];
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
chn_intr(ch->channel);
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
}
return (0);
diff --git a/sys/dev/sound/pci/hdsp.h b/sys/dev/sound/pci/hdsp.h
--- a/sys/dev/sound/pci/hdsp.h
+++ b/sys/dev/sound/pci/hdsp.h
@@ -223,7 +223,7 @@
/* HDSP device private data */
struct sc_info {
device_t dev;
- struct mtx *lock;
+ struct mtx lock;
uint32_t ctrl_register;
uint32_t type;
diff --git a/sys/dev/sound/pci/hdsp.c b/sys/dev/sound/pci/hdsp.c
--- a/sys/dev/sound/pci/hdsp.c
+++ b/sys/dev/sound/pci/hdsp.c
@@ -109,7 +109,7 @@
sc = (struct sc_info *)p;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
status = hdsp_read_1(sc, HDSP_STATUS_REG);
if (status & HDSP_AUDIO_IRQ_PENDING) {
@@ -126,7 +126,7 @@
free(devlist, M_TEMP);
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
}
static void
@@ -286,11 +286,11 @@
/* Set input level in control register. */
control &= HDSP_INPUT_LEVEL_MASK;
if (control != (sc->ctrl_register & HDSP_INPUT_LEVEL_MASK)) {
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
sc->ctrl_register &= ~HDSP_INPUT_LEVEL_MASK;
sc->ctrl_register |= control;
hdsp_write_4(sc, HDSP_CONTROL_REG, sc->ctrl_register);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
}
return (0);
}
@@ -350,11 +350,11 @@
/* Set output level in control register. */
control &= HDSP_OUTPUT_LEVEL_MASK;
if (control != (sc->ctrl_register & HDSP_OUTPUT_LEVEL_MASK)) {
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
sc->ctrl_register &= ~HDSP_OUTPUT_LEVEL_MASK;
sc->ctrl_register |= control;
hdsp_write_4(sc, HDSP_CONTROL_REG, sc->ctrl_register);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
}
return (0);
}
@@ -414,11 +414,11 @@
/* Set phones level in control register. */
control &= HDSP_PHONES_LEVEL_MASK;
if (control != (sc->ctrl_register & HDSP_PHONES_LEVEL_MASK)) {
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
sc->ctrl_register &= ~HDSP_PHONES_LEVEL_MASK;
sc->ctrl_register |= control;
hdsp_write_4(sc, HDSP_CONTROL_REG, sc->ctrl_register);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
}
return (0);
}
@@ -549,11 +549,11 @@
if (clock->name != NULL) {
control = hdsp_control_clock_preference(clock->type);
control &= HDSP_CONTROL_CLOCK_MASK;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
sc->ctrl_register &= ~HDSP_CONTROL_CLOCK_MASK;
sc->ctrl_register |= control;
hdsp_write_4(sc, HDSP_CONTROL_REG, sc->ctrl_register);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
}
return (0);
}
@@ -600,10 +600,10 @@
return (ENXIO);
/* Read current (autosync) clock source from status2 register. */
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
status2 = hdsp_read_4(sc, HDSP_STATUS2_REG);
status2 &= HDSP_STATUS2_CLOCK_MASK;
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
/* Translate status2 register value to clock source. */
for (clock = clock_table; clock->name != NULL; ++clock) {
@@ -720,10 +720,10 @@
return (ENXIO);
/* Read current lock and sync bits from status registers. */
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
status = hdsp_read_4(sc, HDSP_STATUS_REG);
status2 = hdsp_read_4(sc, HDSP_STATUS2_REG);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
/* List clock sources with lock and sync state. */
for (clock = clock_table; clock->name != NULL; ++clock) {
@@ -857,8 +857,8 @@
#endif
sc = device_get_softc(dev);
- sc->lock = snd_mtxcreate(device_get_nameunit(dev),
- "snd_hdsp softc");
+ mtx_init(&sc->lock, device_get_nameunit(dev), "snd_hdsp softc",
+ MTX_DEF);
sc->dev = dev;
pci_enable_busmaster(dev);
@@ -999,8 +999,7 @@
bus_release_resource(dev, SYS_RES_IRQ, 0, sc->irq);
if (sc->cs)
bus_release_resource(dev, SYS_RES_MEMORY, PCIR_BAR(0), sc->cs);
- if (sc->lock)
- snd_mtxfree(sc->lock);
+ mtx_destroy(&sc->lock);
return (0);
}
diff --git a/sys/dev/sound/pci/hdspe-pcm.c b/sys/dev/sound/pci/hdspe-pcm.c
--- a/sys/dev/sound/pci/hdspe-pcm.c
+++ b/sys/dev/sound/pci/hdspe-pcm.c
@@ -305,10 +305,10 @@
if (hdspe_channel_rec_ports(scp->hc))
mask |= SOUND_MASK_RECLEV;
- 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);
}
@@ -667,7 +667,7 @@
device_printf(scp->dev, "hdspechan_free()\n");
#endif
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
if (ch->data != NULL) {
free(ch->data, M_HDSPE);
ch->data = NULL;
@@ -676,7 +676,7 @@
free(ch->caps, M_HDSPE);
ch->caps = NULL;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -693,7 +693,7 @@
scp = devinfo;
sc = scp->sc;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
num = scp->chnum;
ch = &scp->chan[num];
@@ -729,7 +729,7 @@
ch->dir = dir;
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
if (sndbuf_setup(ch->buffer, ch->data, ch->size) != 0) {
device_printf(scp->dev, "Can't setup sndbuf.\n");
@@ -751,7 +751,7 @@
scp = ch->parent;
sc = scp->sc;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
switch (go) {
case PCMTRIG_START:
#if 0
@@ -779,7 +779,7 @@
break;
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
return (0);
}
@@ -796,9 +796,9 @@
scp = ch->parent;
sc = scp->sc;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
ret = hdspe_read_2(sc, HDSPE_STATUS_REG);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
pos = ret & HDSPE_BUF_POSITION_MASK;
pos *= AFMT_CHANNEL(ch->format); /* Hardbuf with multiple channels. */
@@ -946,12 +946,12 @@
}
}
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
sc->ctrl_register &= ~HDSPE_LAT_MASK;
sc->ctrl_register |= hdspe_encode_latency(hl->n);
hdspe_write_4(sc, HDSPE_CONTROL_REG, sc->ctrl_register);
sc->period = hl->period;
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
#if 0
device_printf(scp->dev, "New period=%d\n", sc->period);
@@ -1025,9 +1025,9 @@
for (i = 0; i < scp->chnum; i++) {
ch = &scp->chan[i];
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
chn_intr(ch->channel);
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
}
return (0);
diff --git a/sys/dev/sound/pci/hdspe.h b/sys/dev/sound/pci/hdspe.h
--- a/sys/dev/sound/pci/hdspe.h
+++ b/sys/dev/sound/pci/hdspe.h
@@ -214,7 +214,7 @@
/* HDSPe device private data */
struct sc_info {
device_t dev;
- struct mtx *lock;
+ struct mtx lock;
uint32_t ctrl_register;
uint32_t settings_register;
diff --git a/sys/dev/sound/pci/hdspe.c b/sys/dev/sound/pci/hdspe.c
--- a/sys/dev/sound/pci/hdspe.c
+++ b/sys/dev/sound/pci/hdspe.c
@@ -119,7 +119,7 @@
sc = (struct sc_info *)p;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
status = hdspe_read_1(sc, HDSPE_STATUS_REG);
if (status & HDSPE_AUDIO_IRQ_PENDING) {
@@ -136,7 +136,7 @@
free(devlist, M_TEMP);
}
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
}
static void
@@ -301,11 +301,11 @@
/* Set input level in settings register. */
settings &= HDSPE_INPUT_LEVEL_MASK;
if (settings != (sc->settings_register & HDSPE_INPUT_LEVEL_MASK)) {
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
sc->settings_register &= ~HDSPE_INPUT_LEVEL_MASK;
sc->settings_register |= settings;
hdspe_write_4(sc, HDSPE_SETTINGS_REG, sc->settings_register);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
}
return (0);
}
@@ -365,11 +365,11 @@
/* Set output level in settings register. */
settings &= HDSPE_OUTPUT_LEVEL_MASK;
if (settings != (sc->settings_register & HDSPE_OUTPUT_LEVEL_MASK)) {
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
sc->settings_register &= ~HDSPE_OUTPUT_LEVEL_MASK;
sc->settings_register |= settings;
hdspe_write_4(sc, HDSPE_SETTINGS_REG, sc->settings_register);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
}
return (0);
}
@@ -429,11 +429,11 @@
/* Set phones level in settings register. */
settings &= HDSPE_PHONES_LEVEL_MASK;
if (settings != (sc->settings_register & HDSPE_PHONES_LEVEL_MASK)) {
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
sc->settings_register &= ~HDSPE_PHONES_LEVEL_MASK;
sc->settings_register |= settings;
hdspe_write_4(sc, HDSPE_SETTINGS_REG, sc->settings_register);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
}
return (0);
}
@@ -540,11 +540,11 @@
/* Set preferred clock source in settings register. */
if (clock->name != NULL) {
setting = clock->setting & HDSPE_SETTING_CLOCK_MASK;
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
sc->settings_register &= ~HDSPE_SETTING_CLOCK_MASK;
sc->settings_register |= setting;
hdspe_write_4(sc, HDSPE_SETTINGS_REG, sc->settings_register);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
}
return (0);
}
@@ -568,10 +568,10 @@
return (ENXIO);
/* Read current (autosync) clock source from status register. */
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
status = hdspe_read_4(sc, HDSPE_STATUS1_REG);
status &= HDSPE_STATUS1_CLOCK_MASK;
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
/* Translate status register value to clock source. */
for (clock = clock_table; clock->name != NULL; ++clock) {
@@ -640,9 +640,9 @@
return (ENXIO);
/* Read current lock and sync bits from status register. */
- snd_mtxlock(sc->lock);
+ mtx_lock(&sc->lock);
status = hdspe_read_4(sc, HDSPE_STATUS1_REG);
- snd_mtxunlock(sc->lock);
+ mtx_unlock(&sc->lock);
/* List clock sources with lock and sync state. */
for (clock = clock_table; clock->name != NULL; ++clock) {
@@ -749,8 +749,8 @@
#endif
sc = device_get_softc(dev);
- sc->lock = snd_mtxcreate(device_get_nameunit(dev),
- "snd_hdspe softc");
+ mtx_init(&sc->lock, device_get_nameunit(dev), "snd_hdspe softc",
+ MTX_DEF);
sc->dev = dev;
pci_enable_busmaster(dev);
@@ -891,8 +891,7 @@
bus_release_resource(dev, SYS_RES_IRQ, 0, sc->irq);
if (sc->cs)
bus_release_resource(dev, SYS_RES_MEMORY, PCIR_BAR(0), sc->cs);
- if (sc->lock)
- snd_mtxfree(sc->lock);
+ mtx_destroy(&sc->lock);
return (0);
}
diff --git a/sys/dev/sound/pci/ich.c b/sys/dev/sound/pci/ich.c
--- a/sys/dev/sound/pci/ich.c
+++ b/sys/dev/sound/pci/ich.c
@@ -77,9 +77,9 @@
#define AMD_768 0x7445
#define AMD_8111 0x746d
-#define ICH_LOCK(sc) snd_mtxlock((sc)->ich_lock)
-#define ICH_UNLOCK(sc) snd_mtxunlock((sc)->ich_lock)
-#define ICH_LOCK_ASSERT(sc) snd_mtxassert((sc)->ich_lock)
+#define ICH_LOCK(sc) mtx_lock(&(sc)->ich_lock)
+#define ICH_UNLOCK(sc) mtx_unlock(&(sc)->ich_lock)
+#define ICH_LOCK_ASSERT(sc) mtx_assert(&(sc)->ich_lock, MA_OWNED)
#if 0
#define ICH_DEBUG(stmt) do { \
@@ -196,7 +196,7 @@
uint16_t vendor;
uint16_t devid;
uint32_t flags;
- struct mtx *ich_lock;
+ struct mtx ich_lock;
};
/* -------------------------------------------------------------------- */
@@ -888,7 +888,8 @@
int i;
sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK | M_ZERO);
- sc->ich_lock = snd_mtxcreate(device_get_nameunit(dev), "snd_ich softc");
+ mtx_init(&sc->ich_lock, device_get_nameunit(dev), "snd_ich softc",
+ MTX_DEF);
sc->dev = dev;
vendor = sc->vendor = pci_get_vendor(dev);
@@ -1111,8 +1112,7 @@
bus_dma_tag_destroy(sc->chan_dmat);
if (sc->dmat)
bus_dma_tag_destroy(sc->dmat);
- if (sc->ich_lock)
- snd_mtxfree(sc->ich_lock);
+ mtx_destroy(&sc->ich_lock);
free(sc, M_DEVBUF);
return (ENXIO);
}
@@ -1136,7 +1136,7 @@
bus_dmamem_free(sc->dmat, sc->dtbl, sc->dtmap);
bus_dma_tag_destroy(sc->chan_dmat);
bus_dma_tag_destroy(sc->dmat);
- snd_mtxfree(sc->ich_lock);
+ mtx_destroy(&sc->ich_lock);
free(sc, M_DEVBUF);
return (0);
}
diff --git a/sys/dev/sound/pci/maestro3.c b/sys/dev/sound/pci/maestro3.c
--- a/sys/dev/sound/pci/maestro3.c
+++ b/sys/dev/sound/pci/maestro3.c
@@ -156,12 +156,12 @@
unsigned int bufsz;
u_int16_t *savemem;
- struct mtx *sc_lock;
+ struct mtx sc_lock;
};
-#define M3_LOCK(_sc) snd_mtxlock((_sc)->sc_lock)
-#define M3_UNLOCK(_sc) snd_mtxunlock((_sc)->sc_lock)
-#define M3_LOCK_ASSERT(_sc) snd_mtxassert((_sc)->sc_lock)
+#define M3_LOCK(_sc) mtx_lock(&(_sc)->sc_lock)
+#define M3_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_lock)
+#define M3_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->sc_lock, MA_OWNED)
/* -------------------------------------------------------------------- */
@@ -1325,8 +1325,8 @@
sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK | M_ZERO);
sc->dev = dev;
sc->type = pci_get_devid(dev);
- sc->sc_lock = snd_mtxcreate(device_get_nameunit(dev),
- "snd_maestro3 softc");
+ mtx_init(&sc->sc_lock, device_get_nameunit(dev), "snd_maestro3 softc",
+ MTX_DEF);
for (card = m3_card_types ; card->pci_id ; card++) {
if (sc->type == card->pci_id) {
sc->which = card->which;
@@ -1465,8 +1465,7 @@
bus_release_resource(dev, sc->regtype, sc->regid, sc->reg);
if (sc->parent_dmat)
bus_dma_tag_destroy(sc->parent_dmat);
- if (sc->sc_lock)
- snd_mtxfree(sc->sc_lock);
+ mtx_destroy(&sc->sc_lock);
free(sc, M_DEVBUF);
return ENXIO;
}
@@ -1494,7 +1493,7 @@
bus_dma_tag_destroy(sc->parent_dmat);
free(sc->savemem, M_DEVBUF);
- snd_mtxfree(sc->sc_lock);
+ mtx_destroy(&sc->sc_lock);
free(sc, M_DEVBUF);
return 0;
}
diff --git a/sys/dev/sound/pci/solo.c b/sys/dev/sound/pci/solo.c
--- a/sys/dev/sound/pci/solo.c
+++ b/sys/dev/sound/pci/solo.c
@@ -97,12 +97,12 @@
unsigned int bufsz;
struct ess_chinfo pch, rch;
- struct mtx *lock;
+ struct mtx lock;
};
-#define ess_lock(_ess) snd_mtxlock((_ess)->lock)
-#define ess_unlock(_ess) snd_mtxunlock((_ess)->lock)
-#define ess_lock_assert(_ess) snd_mtxassert((_ess)->lock)
+#define ess_lock(_ess) mtx_lock(&(_ess)->lock)
+#define ess_unlock(_ess) mtx_unlock(&(_ess)->lock)
+#define ess_lock_assert(_ess) mtx_assert(&(_ess)->lock, MA_OWNED)
static int ess_rd(struct ess_info *sc, int reg);
static void ess_wr(struct ess_info *sc, int reg, u_int8_t val);
@@ -855,10 +855,7 @@
sc->parent_dmat = 0;
}
- if (sc->lock) {
- snd_mtxfree(sc->lock);
- sc->lock = NULL;
- }
+ mtx_destroy(&sc->lock);
free(sc, M_DEVBUF);
}
@@ -887,10 +884,11 @@
sc->irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid,
RF_ACTIVE | RF_SHAREABLE);
- sc->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_solo softc");
+ mtx_init(&sc->lock, device_get_nameunit(dev), "snd_solo softc",
+ MTX_DEF);
return (sc->irq && sc->io && sc->sb && sc->vc &&
- sc->mpu && sc->gp && sc->lock)? 0 : ENXIO;
+ sc->mpu && sc->gp)? 0 : ENXIO;
}
static int
diff --git a/sys/dev/sound/pci/spicds.c b/sys/dev/sound/pci/spicds.c
--- a/sys/dev/sound/pci/spicds.c
+++ b/sys/dev/sound/pci/spicds.c
@@ -49,7 +49,7 @@
unsigned int dvc; /* De-emphasis and Volume Control */
unsigned int left, right;
char name[SPICDS_NAMELEN];
- struct mtx *lock;
+ struct mtx lock;
};
static void
@@ -149,7 +149,7 @@
return NULL;
snprintf(codec->name, SPICDS_NAMELEN, "%s:spicds%d", device_get_nameunit(dev), num);
- codec->lock = snd_mtxcreate(codec->name, codec->name);
+ mtx_init(&codec->lock, codec->name, codec->name, MTX_DEF);
codec->dev = dev;
codec->ctrl = ctrl;
codec->devinfo = devinfo;
@@ -165,40 +165,40 @@
void
spicds_destroy(struct spicds_info *codec)
{
- snd_mtxfree(codec->lock);
+ mtx_destroy(&codec->lock);
free(codec, M_SPICDS);
}
void
spicds_settype(struct spicds_info *codec, unsigned int type)
{
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
codec->type = type;
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
}
void
spicds_setcif(struct spicds_info *codec, unsigned int cif)
{
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
codec->cif = cif;
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
}
void
spicds_setformat(struct spicds_info *codec, unsigned int format)
{
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
codec->format = format;
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
}
void
spicds_setdvc(struct spicds_info *codec, unsigned int dvc)
{
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
codec->dvc = dvc;
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
}
void
@@ -207,7 +207,7 @@
#if(0)
device_printf(codec->dev, "spicds_init(codec)\n");
#endif
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
if (codec->type == SPICDS_TYPE_AK4524 ||\
codec->type == SPICDS_TYPE_AK4528) {
/* power off */
@@ -244,13 +244,13 @@
spicds_wrcd(codec, 0x00, 0x8f); /* I2S, 24bit, power-up */
if (codec->type == SPICDS_TYPE_AK4396)
spicds_wrcd(codec, 0x00, 0x07); /* I2S, 24bit, power-up */
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
}
void
spicds_reinit(struct spicds_info *codec)
{
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
if (codec->type != SPICDS_TYPE_WM8770) {
/* reset */
spicds_wrcd(codec, AK4524_RESET, 0);
@@ -265,7 +265,7 @@
/* AK4358 reinit */
/* AK4381 reinit */
}
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
}
void
@@ -274,7 +274,7 @@
#if(0)
device_printf(codec->dev, "spicds_set(codec, %d, %d, %d)\n", dir, left, right);
#endif
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
if (left >= 100)
if ((codec->type == SPICDS_TYPE_AK4381) || \
(codec->type == SPICDS_TYPE_AK4396))
@@ -362,7 +362,7 @@
spicds_wrcd(codec, AK4396_ROATT, right);
}
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
}
MODULE_DEPEND(snd_spicds, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER);
diff --git a/sys/dev/sound/pci/t4dwave.c b/sys/dev/sound/pci/t4dwave.c
--- a/sys/dev/sound/pci/t4dwave.c
+++ b/sys/dev/sound/pci/t4dwave.c
@@ -99,7 +99,7 @@
int regtype, regid, irqid;
void *ih;
- struct mtx *lock;
+ struct mtx lock;
u_int32_t hwchns;
u_int32_t playchns;
@@ -209,7 +209,7 @@
i = j = 0;
regno &= 0x7f;
- snd_mtxlock(tr->lock);
+ mtx_lock(&tr->lock);
if (tr->type == ALI_PCI_ID) {
u_int32_t chk1, chk2;
j = trw;
@@ -229,7 +229,7 @@
for (i=TR_TIMEOUT_CDC; (i > 0) && (j & trw); i--)
j=tr_rd(tr, treg, 4);
}
- snd_mtxunlock(tr->lock);
+ mtx_unlock(&tr->lock);
if (i == 0) printf("codec timeout during read of register %x\n", regno);
return (j >> TR_CDC_DATA) & 0xffff;
}
@@ -266,7 +266,7 @@
printf("tr_wrcd: reg %x was %x", regno, tr_rdcd(devinfo, regno));
#endif
j=trw;
- snd_mtxlock(tr->lock);
+ mtx_lock(&tr->lock);
if (tr->type == ALI_PCI_ID) {
j = trw;
for (i = TR_TIMEOUT_CDC; (i > 0) && (j & trw); i--)
@@ -290,7 +290,7 @@
#if 0
printf(" - wrote %x, now %x\n", data, tr_rdcd(devinfo, regno));
#endif
- snd_mtxunlock(tr->lock);
+ mtx_unlock(&tr->lock);
if (i==0) printf("codec timeout writing %x, data %x\n", regno, data);
return (i > 0)? 0 : -1;
}
@@ -336,7 +336,7 @@
u_int32_t i, reg;
int bank, chan;
- snd_mtxlock(tr->lock);
+ mtx_lock(&tr->lock);
bank = (ch->index & 0x20) ? 1 : 0;
chan = ch->index & 0x1f;
reg = bank? TR_REG_INTENB : TR_REG_INTENA;
@@ -347,7 +347,7 @@
tr_clrint(ch);
tr_wr(tr, reg, i, 4);
- snd_mtxunlock(tr->lock);
+ mtx_unlock(&tr->lock);
}
/* playback channels */
@@ -429,11 +429,11 @@
cr[3]|=(ch->alpha<<20) | (ch->fms<<16) | (ch->fmc<<14);
break;
}
- snd_mtxlock(tr->lock);
+ mtx_lock(&tr->lock);
tr_selch(ch);
for (i=0; i<TR_CHN_REGS; i++)
tr_wr(tr, TR_REG_CHNBASE+(i<<2), cr[i], 4);
- snd_mtxunlock(tr->lock);
+ mtx_unlock(&tr->lock);
}
static void
@@ -442,11 +442,11 @@
struct tr_info *tr = ch->parent;
u_int32_t cr[5], i;
- snd_mtxlock(tr->lock);
+ mtx_lock(&tr->lock);
tr_selch(ch);
for (i=0; i<5; i++)
cr[i]=tr_rd(tr, TR_REG_CHNBASE+(i<<2), 4);
- snd_mtxunlock(tr->lock);
+ mtx_unlock(&tr->lock);
if (tr->type == ALI_PCI_ID)
ch->lba=(cr[1] & ALI_MAXADDR);
@@ -830,7 +830,8 @@
tr = malloc(sizeof(*tr), M_DEVBUF, M_WAITOK | M_ZERO);
tr->type = pci_get_devid(dev);
tr->rev = pci_get_revid(dev);
- tr->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_t4dwave softc");
+ mtx_init(&tr->lock, device_get_nameunit(dev), "snd_t4dwave softc",
+ MTX_DEF);
if (resource_int_value(device_get_name(dev), device_get_unit(dev),
"dac", &i) == 0) {
@@ -936,7 +937,7 @@
if (tr->ih) bus_teardown_intr(dev, tr->irq, tr->ih);
if (tr->irq) bus_release_resource(dev, SYS_RES_IRQ, tr->irqid, tr->irq);
if (tr->parent_dmat) bus_dma_tag_destroy(tr->parent_dmat);
- if (tr->lock) snd_mtxfree(tr->lock);
+ mtx_destroy(&tr->lock);
free(tr, M_DEVBUF);
return ENXIO;
}
@@ -956,7 +957,7 @@
bus_teardown_intr(dev, tr->irq, tr->ih);
bus_release_resource(dev, SYS_RES_IRQ, tr->irqid, tr->irq);
bus_dma_tag_destroy(tr->parent_dmat);
- snd_mtxfree(tr->lock);
+ mtx_destroy(&tr->lock);
free(tr, M_DEVBUF);
return 0;
diff --git a/sys/dev/sound/pci/via8233.c b/sys/dev/sound/pci/via8233.c
--- a/sys/dev/sound/pci/via8233.c
+++ b/sys/dev/sound/pci/via8233.c
@@ -121,7 +121,7 @@
uint16_t codec_caps;
uint16_t n_dxs_registered;
int play_num, rec_num;
- struct mtx *lock;
+ struct mtx lock;
struct callout poll_timer;
int poll_ticks, polling;
};
@@ -164,9 +164,9 @@
dev = oidp->oid_arg1;
via = pcm_getdevinfo(dev);
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
r = pci_read_config(dev, VIA_PCI_SPDIF, 1);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
new_en = (r & VIA_SPDIF_EN) ? 1 : 0;
err = sysctl_handle_int(oidp, &new_en, 0, req);
@@ -179,9 +179,9 @@
r |= VIA_SPDIF_EN;
else
r &= ~VIA_SPDIF_EN;
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
pci_write_config(dev, VIA_PCI_SPDIF, r, 1);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return (0);
}
@@ -195,9 +195,9 @@
dev = oidp->oid_arg1;
via = pcm_getdevinfo(dev);
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
val = via->dxs_src;
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
err = sysctl_handle_int(oidp, &val, 0, req);
if (err || req->newptr == NULL)
@@ -205,9 +205,9 @@
if (val < 0 || val > 1)
return (EINVAL);
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
via->dxs_src = val;
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return (0);
}
@@ -223,9 +223,9 @@
via = pcm_getdevinfo(dev);
if (via == NULL)
return (EINVAL);
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
val = via->polling;
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
err = sysctl_handle_int(oidp, &val, 0, req);
if (err || req->newptr == NULL)
@@ -233,7 +233,7 @@
if (val < 0 || val > 1)
return (EINVAL);
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
if (val != via->polling) {
if (via_chan_active(via) != 0)
err = EBUSY;
@@ -242,7 +242,7 @@
else
via->polling = 1;
}
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return (err);
}
@@ -411,9 +411,9 @@
f |= WR_FORMAT_STEREO;
if (format & AFMT_S16_LE)
f |= WR_FORMAT_16BIT;
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
via_wr(via, VIA_WR0_FORMAT, f, 4);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return (0);
}
@@ -426,7 +426,7 @@
uint32_t r, v;
r = ch->rbase + VIA8233_RP_DXS_RATEFMT;
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
v = via_rd(via, r, 4);
v &= ~(VIA8233_DXS_RATEFMT_STEREO | VIA8233_DXS_RATEFMT_16BIT);
@@ -435,7 +435,7 @@
if (format & AFMT_16BIT)
v |= VIA8233_DXS_RATEFMT_16BIT;
via_wr(via, r, v, 4);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return (0);
}
@@ -457,10 +457,10 @@
s |= SLOT3(1) | SLOT4(1);
}
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
via_wr(via, VIA_MC_SLOT_SELECT, s, 4);
via_wr(via, VIA_MC_SGD_FORMAT, v, 1);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return (0);
}
@@ -488,14 +488,14 @@
uint32_t r, v;
r = ch->rbase + VIA8233_RP_DXS_RATEFMT;
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
v = via_rd(via, r, 4) & ~VIA8233_DXS_RATEFMT_48K;
/* Careful to avoid overflow (divide by 48 per vt8233c docs) */
v |= VIA8233_DXS_RATEFMT_48K * (speed / 48) / (48000 / 48);
via_wr(via, r, v, 4);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return (speed);
}
@@ -616,13 +616,13 @@
struct via_info *via = ch->parent;
uint32_t v, index, count, ptr;
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
if (via->polling != 0) {
ptr = ch->ptr;
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
} else {
v = via_rd(via, ch->rbase + VIA_RP_CURRENT_COUNT, 4);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
index = v >> 24; /* Last completed buffer */
count = v & 0x00ffffff; /* Bytes remaining */
ptr = (index + 1) * ch->blksz - count;
@@ -660,7 +660,7 @@
struct via_chinfo *ch;
int num;
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
num = via->rec_num++;
ch = &via->rch[num];
ch->parent = via;
@@ -670,15 +670,15 @@
ch->blkcnt = via->blkcnt;
ch->rbase = VIA_WR_BASE(num);
via_wr(via, ch->rbase + VIA_WR_RP_SGD_FORMAT, WR_FIFO_ENABLE, 1);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
if (sndbuf_alloc(ch->buffer, via->parent_dmat, 0, via->bufsz) != 0)
return (NULL);
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
via8233chan_sgdinit(via, ch, num);
via8233chan_reset(via, ch);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return (ch);
}
@@ -691,7 +691,7 @@
struct via_chinfo *ch;
int num;
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
num = via->play_num++;
ch = &via->pch[num];
ch->parent = via;
@@ -707,15 +707,15 @@
*/
ch->rbase = VIA_DXS_BASE(NDXSCHANS - 1 - via->n_dxs_registered);
via->n_dxs_registered++;
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
if (sndbuf_alloc(ch->buffer, via->parent_dmat, 0, via->bufsz) != 0)
return (NULL);
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
via8233chan_sgdinit(via, ch, NWRCHANS + num);
via8233chan_reset(via, ch);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return (ch);
}
@@ -728,7 +728,7 @@
struct via_chinfo *ch;
int num;
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
num = via->play_num++;
ch = &via->pch[num];
ch->parent = via;
@@ -737,15 +737,15 @@
ch->dir = dir;
ch->rbase = VIA_MC_SGD_STATUS;
ch->blkcnt = via->blkcnt;
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
if (sndbuf_alloc(ch->buffer, via->parent_dmat, 0, via->bufsz) != 0)
return (NULL);
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
via8233chan_sgdinit(via, ch, NWRCHANS + num);
via8233chan_reset(via, ch);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return (ch);
}
@@ -807,9 +807,9 @@
if (via == NULL)
return;
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
if (via->polling == 0 || via_chan_active(via) == 0) {
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return;
}
@@ -825,7 +825,7 @@
callout_reset(&via->poll_timer, 1/*via->poll_ticks*/,
via_poll_callback, via);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
for (i = 0; i < NDXSCHANS + NMSGDCHANS; i++) {
if (ptrigger & (1 << i))
@@ -888,7 +888,7 @@
if (!PCMTRIG_COMMON(go))
return (0);
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
switch(go) {
case PCMTRIG_START:
via_buildsgdt(ch);
@@ -957,7 +957,7 @@
default:
break;
}
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return (0);
}
@@ -1009,9 +1009,9 @@
uint32_t ptrigger = 0, rtrigger = 0;
int i, reg, stat;
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
if (via->polling != 0) {
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return;
}
/* Poll playback channels */
@@ -1046,7 +1046,7 @@
rtrigger |= 1 << i;
}
}
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
for (i = 0; i < NDXSCHANS + NMSGDCHANS; i++) {
if (ptrigger & (1 << i))
@@ -1168,8 +1168,8 @@
uint32_t revid;
via = malloc(sizeof *via, M_DEVBUF, M_WAITOK | M_ZERO);
- via->lock = snd_mtxcreate(device_get_nameunit(dev),
- "snd_via8233 softc");
+ mtx_init(&via->lock, device_get_nameunit(dev), "snd_via8233 softc",
+ MTX_DEF);
via->dev = dev;
callout_init(&via->poll_timer, 1);
@@ -1384,8 +1384,7 @@
bus_dmamem_free(via->sgd_dmat, via->sgd_table, via->sgd_dmamap);
if (via->sgd_dmat)
bus_dma_tag_destroy(via->sgd_dmat);
- if (via->lock)
- snd_mtxfree(via->lock);
+ mtx_destroy(&via->lock);
if (via)
free(via, M_DEVBUF);
return (ENXIO);
@@ -1404,10 +1403,10 @@
via = pcm_getdevinfo(dev);
if (via != NULL && (via->play_num != 0 || via->rec_num != 0)) {
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
via->polling = 0;
callout_stop(&via->poll_timer);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
callout_drain(&via->poll_timer);
}
@@ -1418,7 +1417,7 @@
bus_dmamap_unload(via->sgd_dmat, via->sgd_dmamap);
bus_dmamem_free(via->sgd_dmat, via->sgd_table, via->sgd_dmamap);
bus_dma_tag_destroy(via->sgd_dmat);
- snd_mtxfree(via->lock);
+ mtx_destroy(&via->lock);
free(via, M_DEVBUF);
return (0);
}
diff --git a/sys/dev/sound/pci/via82c686.c b/sys/dev/sound/pci/via82c686.c
--- a/sys/dev/sound/pci/via82c686.c
+++ b/sys/dev/sound/pci/via82c686.c
@@ -90,7 +90,7 @@
struct via_chinfo pch, rch;
struct via_dma_op *sgd_table;
u_int16_t codec_caps;
- struct mtx *lock;
+ struct mtx lock;
};
static u_int32_t via_fmt[] = {
@@ -245,7 +245,7 @@
struct via_info *via = devinfo;
struct via_chinfo *ch;
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
if (dir == PCMDIR_PLAY) {
ch = &via->pch;
ch->base = VIA_PLAY_DMAOPS_BASE;
@@ -268,7 +268,7 @@
ch->channel = c;
ch->buffer = b;
ch->dir = dir;
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
if (sndbuf_alloc(ch->buffer, via->parent_dmat, 0, via->bufsz) != 0)
return NULL;
@@ -290,12 +290,12 @@
mode_set |= VIA_RPMODE_16BIT;
DEB(printf("set format: dir = %d, format=%x\n", ch->dir, format));
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
mode = via_rd(via, ch->mode, 1);
mode &= ~(VIA_RPMODE_16BIT | VIA_RPMODE_STEREO);
mode |= mode_set;
via_wr(via, ch->mode, mode, 1);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
return 0;
}
@@ -346,14 +346,14 @@
DEB(printf("ado located at va=%p pa=%x\n", ch->sgd_table, sgd_addr));
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
if (go == PCMTRIG_START) {
via_buildsgdt(ch);
via_wr(via, ch->base, sgd_addr, 4);
via_wr(via, ch->ctrl, VIA_RPCTRL_START, 1);
} else
via_wr(via, ch->ctrl, VIA_RPCTRL_TERMINATE, 1);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
DEB(printf("viachan_trigger: go=%d\n", go));
return 0;
@@ -367,13 +367,13 @@
bus_addr_t sgd_addr = ch->sgd_addr;
u_int32_t ptr, base, base1, len, seg;
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
base1 = via_rd(via, ch->base, 4);
len = via_rd(via, ch->count, 4);
base = via_rd(via, ch->base, 4);
if (base != base1) /* Avoid race hazard */
len = via_rd(via, ch->count, 4);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
DEB(printf("viachan_getptr: len / base = %x / %x\n", len, base));
@@ -426,22 +426,22 @@
/* DEB(printf("viachan_intr\n")); */
/* Read channel */
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
if (via_rd(via, VIA_PLAY_STAT, 1) & VIA_RPSTAT_INTR) {
via_wr(via, VIA_PLAY_STAT, VIA_RPSTAT_INTR, 1);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
chn_intr(via->pch.channel);
- snd_mtxlock(via->lock);
+ mtx_lock(&via->lock);
}
/* Write channel */
if (via_rd(via, VIA_RECORD_STAT, 1) & VIA_RPSTAT_INTR) {
via_wr(via, VIA_RECORD_STAT, VIA_RPSTAT_INTR, 1);
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
chn_intr(via->rch.channel);
return;
}
- snd_mtxunlock(via->lock);
+ mtx_unlock(&via->lock);
}
/*
@@ -472,8 +472,8 @@
u_int32_t data, cnt;
via = malloc(sizeof(*via), M_DEVBUF, M_WAITOK | M_ZERO);
- via->lock = snd_mtxcreate(device_get_nameunit(dev),
- "snd_via82c686 softc");
+ mtx_init(&via->lock, device_get_nameunit(dev), "snd_via82c686 softc",
+ MTX_DEF);
pci_enable_busmaster(dev);
@@ -600,7 +600,7 @@
if (via->sgd_addr) bus_dmamap_unload(via->sgd_dmat, via->sgd_dmamap);
if (via->sgd_table) bus_dmamem_free(via->sgd_dmat, via->sgd_table, via->sgd_dmamap);
if (via->sgd_dmat) bus_dma_tag_destroy(via->sgd_dmat);
- if (via->lock) snd_mtxfree(via->lock);
+ mtx_destroy(&via->lock);
if (via) free(via, M_DEVBUF);
return ENXIO;
}
@@ -623,7 +623,7 @@
bus_dmamap_unload(via->sgd_dmat, via->sgd_dmamap);
bus_dmamem_free(via->sgd_dmat, via->sgd_table, via->sgd_dmamap);
bus_dma_tag_destroy(via->sgd_dmat);
- snd_mtxfree(via->lock);
+ mtx_destroy(&via->lock);
free(via, M_DEVBUF);
return 0;
}
diff --git a/sys/dev/sound/pcm/ac97.c b/sys/dev/sound/pcm/ac97.c
--- a/sys/dev/sound/pcm/ac97.c
+++ b/sys/dev/sound/pcm/ac97.c
@@ -65,7 +65,7 @@
u_int32_t flags;
struct ac97mixtable_entry mix[AC97_MIXER_SIZE];
char name[16];
- struct mtx *lock;
+ struct mtx lock;
};
struct ac97_vendorid {
@@ -364,7 +364,7 @@
return -1;
}
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
if (rate != 0) {
v = rate;
if (codec->extstat & AC97_EXTCAP_DRA)
@@ -374,7 +374,7 @@
v = ac97_rdcd(codec, which);
if (codec->extstat & AC97_EXTCAP_DRA)
v <<= 1;
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
return v;
}
@@ -387,10 +387,10 @@
mode);
return -1;
}
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
ac97_wrcd(codec, AC97_REGEXT_STAT, mode);
codec->extstat = ac97_rdcd(codec, AC97_REGEXT_STAT) & AC97_EXTCAPS;
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
return (mode == codec->extstat)? 0 : -1;
}
@@ -426,9 +426,9 @@
if (e->recidx > 0) {
int val = e->recidx - 1;
val |= val << 8;
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
ac97_wrcd(codec, AC97_REG_RECSEL, val);
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
return 0;
} else
return -1;
@@ -497,13 +497,13 @@
/*
* If the mask bit is set, do not alter the other bits.
*/
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
if (e->mask) {
int cur = ac97_rdcd(codec, reg);
val |= cur & ~(mask);
}
ac97_wrcd(codec, reg, val);
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
return left | (right << 8);
} else {
return -1;
@@ -603,11 +603,11 @@
u_int32_t id;
int reg;
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
codec->count = AC97_INIT(codec->methods, codec->devinfo);
if (codec->count == 0) {
device_printf(codec->dev, "ac97 codec init failed\n");
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
return ENODEV;
}
@@ -633,7 +633,7 @@
id = (ac97_rdcd(codec, AC97_REG_ID1) << 16) | ac97_rdcd(codec, AC97_REG_ID2);
if (id == 0 || id == 0xffffffff) {
device_printf(codec->dev, "ac97 codec invalid or not present (id == %x)\n", id);
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
return ENODEV;
}
@@ -780,18 +780,18 @@
}
if (bootverbose)
device_printf(codec->dev, "ac97 codec dac ready count: %d\n", i);
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
return 0;
}
static unsigned
ac97_reinitmixer(struct ac97_info *codec)
{
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
codec->count = AC97_INIT(codec->methods, codec->devinfo);
if (codec->count == 0) {
device_printf(codec->dev, "ac97 codec init failed\n");
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
return ENODEV;
}
@@ -811,7 +811,7 @@
if ((ac97_rdcd(codec, AC97_REG_POWER) & 2) == 0)
device_printf(codec->dev, "ac97 codec reports dac not ready\n");
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
return 0;
}
@@ -824,7 +824,7 @@
codec = malloc(sizeof(*codec), M_AC97, M_WAITOK | M_ZERO);
snprintf(codec->name, sizeof(codec->name), "%s:ac97",
device_get_nameunit(dev));
- codec->lock = snd_mtxcreate(codec->name, "ac97 codec");
+ mtx_init(&codec->lock, codec->name, "ac97 codec", MTX_DEF);
codec->methods = kobj_create(cls, M_AC97, M_WAITOK | M_ZERO);
codec->dev = dev;
codec->devinfo = devinfo;
@@ -844,10 +844,10 @@
void
ac97_destroy(struct ac97_info *codec)
{
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
if (codec->methods != NULL)
kobj_delete(codec->methods, M_AC97);
- snd_mtxfree(codec->lock);
+ mtx_destroy(&codec->lock);
free(codec, M_AC97);
}
@@ -960,21 +960,21 @@
u_int16_t val;
codec = oidp->oid_arg1;
- if (codec == NULL || codec->id == 0 || codec->lock == NULL)
+ if (codec == NULL || codec->id == 0)
return EINVAL;
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
val = ac97_rdcd(codec, AC97_REG_POWER);
inv = (codec->flags & AC97_F_EAPD_INV) ? 0 : 1;
ea = (val >> 15) ^ inv;
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
err = sysctl_handle_int(oidp, &ea, 0, req);
if (err == 0 && req->newptr != NULL) {
if (ea != 0 && ea != 1)
return EINVAL;
if (ea != ((val >> 15) ^ inv)) {
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
ac97_wrcd(codec, AC97_REG_POWER, val ^ 0x8000);
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
}
}
return err;
@@ -987,12 +987,12 @@
if (codec == NULL || codec->dev == NULL)
return;
- snd_mtxlock(codec->lock);
+ mtx_lock(&codec->lock);
orig = ac97_rdcd(codec, AC97_REG_POWER);
ac97_wrcd(codec, AC97_REG_POWER, orig ^ 0x8000);
val = ac97_rdcd(codec, AC97_REG_POWER);
ac97_wrcd(codec, AC97_REG_POWER, orig);
- snd_mtxunlock(codec->lock);
+ mtx_unlock(&codec->lock);
if ((val & 0x8000) == (orig & 0x8000))
return;
SYSCTL_ADD_PROC(device_get_sysctl_ctx(codec->dev),
diff --git a/sys/dev/sound/pcm/channel.h b/sys/dev/sound/pcm/channel.h
--- a/sys/dev/sound/pcm/channel.h
+++ b/sys/dev/sound/pcm/channel.h
@@ -110,7 +110,7 @@
int type;
char name[CHN_NAMELEN];
char comm[MAXCOMLEN + 1];
- struct mtx *lock;
+ struct mtx lock;
int trigger;
/**
* For interrupt manipulations.
@@ -319,12 +319,12 @@
int chn_getpeaks(struct pcm_channel *c, int *lpeak, int *rpeak);
#endif
-#define CHN_LOCKOWNED(c) mtx_owned((c)->lock)
-#define CHN_LOCK(c) mtx_lock((c)->lock)
-#define CHN_UNLOCK(c) mtx_unlock((c)->lock)
-#define CHN_TRYLOCK(c) mtx_trylock((c)->lock)
-#define CHN_LOCKASSERT(c) mtx_assert((c)->lock, MA_OWNED)
-#define CHN_UNLOCKASSERT(c) mtx_assert((c)->lock, MA_NOTOWNED)
+#define CHN_LOCKOWNED(c) mtx_owned(&(c)->lock)
+#define CHN_LOCK(c) mtx_lock(&(c)->lock)
+#define CHN_UNLOCK(c) mtx_unlock(&(c)->lock)
+#define CHN_TRYLOCK(c) mtx_trylock(&(c)->lock)
+#define CHN_LOCKASSERT(c) mtx_assert(&(c)->lock, MA_OWNED)
+#define CHN_UNLOCKASSERT(c) mtx_assert(&(c)->lock, MA_NOTOWNED)
#define CHN_BROADCAST(x) cv_broadcastpri(x, PRIBIO)
diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c
--- a/sys/dev/sound/pcm/channel.c
+++ b/sys/dev/sound/pcm/channel.c
@@ -228,19 +228,21 @@
{
switch (dir) {
case PCMDIR_PLAY:
- c->lock = snd_mtxcreate(c->name, "pcm play channel");
+ mtx_init(&c->lock, c->name, "pcm play channel", MTX_DEF);
cv_init(&c->intr_cv, "pcmwr");
break;
case PCMDIR_PLAY_VIRTUAL:
- c->lock = snd_mtxcreate(c->name, "pcm virtual play channel");
+ mtx_init(&c->lock, c->name, "pcm virtual play channel",
+ MTX_DEF);
cv_init(&c->intr_cv, "pcmwrv");
break;
case PCMDIR_REC:
- c->lock = snd_mtxcreate(c->name, "pcm record channel");
+ mtx_init(&c->lock, c->name, "pcm record channel", MTX_DEF);
cv_init(&c->intr_cv, "pcmrd");
break;
case PCMDIR_REC_VIRTUAL:
- c->lock = snd_mtxcreate(c->name, "pcm virtual record channel");
+ mtx_init(&c->lock, c->name, "pcm virtual record channel",
+ MTX_DEF);
cv_init(&c->intr_cv, "pcmrdv");
break;
default:
@@ -262,7 +264,7 @@
cv_destroy(&c->cv);
cv_destroy(&c->intr_cv);
- snd_mtxfree(c->lock);
+ mtx_destroy(&c->lock);
}
/**
@@ -337,7 +339,7 @@
return (EINVAL);
c->sleeping++;
- ret = cv_timedwait_sig(&c->intr_cv, c->lock, timeout);
+ ret = cv_timedwait_sig(&c->intr_cv, &c->lock, timeout);
c->sleeping--;
return ((c->flags & CHN_F_DEAD) ? EINVAL : ret);
@@ -1235,7 +1237,7 @@
}
c->bufhard = b;
c->bufsoft = bs;
- knlist_init_mtx(&bs->sel.si_note, c->lock);
+ knlist_init_mtx(&bs->sel.si_note, &c->lock);
c->devinfo = CHANNEL_INIT(c->methods, devinfo, b, c, direction);
if (c->devinfo == NULL) {
diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c
--- a/sys/dev/sound/pcm/dsp.c
+++ b/sys/dev/sound/pcm/dsp.c
@@ -1597,7 +1597,7 @@
struct snd_dbuf *bs;
CHN_LOCK(wrch);
while (wrch->inprog != 0)
- cv_wait(&wrch->cv, wrch->lock);
+ cv_wait(&wrch->cv, &wrch->lock);
bs = wrch->bufsoft;
if ((bs->shadbuf != NULL) && (sndbuf_getready(bs) > 0)) {
bs->sl = sndbuf_getready(bs);
@@ -1621,7 +1621,7 @@
struct snd_dbuf *bs;
CHN_LOCK(wrch);
while (wrch->inprog != 0)
- cv_wait(&wrch->cv, wrch->lock);
+ cv_wait(&wrch->cv, &wrch->lock);
bs = wrch->bufsoft;
if ((bs->shadbuf != NULL) && (bs->sl > 0)) {
sndbuf_softreset(bs);
diff --git a/sys/dev/sound/pcm/mixer.c b/sys/dev/sound/pcm/mixer.c
--- a/sys/dev/sound/pcm/mixer.c
+++ b/sys/dev/sound/pcm/mixer.c
@@ -63,7 +63,7 @@
u_int32_t child[32];
u_int8_t realdev[32];
char name[MIXER_NAMELEN];
- struct mtx *lock;
+ struct mtx lock;
oss_mixer_enuminfo enuminfo;
int modify_counter;
};
@@ -126,12 +126,12 @@
#define MIXER_SET_UNLOCK(x, y) do { \
if ((y) != 0) \
- snd_mtxunlock((x)->lock); \
+ mtx_unlock(&(x)->lock); \
} while (0)
#define MIXER_SET_LOCK(x, y) do { \
if ((y) != 0) \
- snd_mtxlock((x)->lock); \
+ mtx_lock(&(x)->lock); \
} while (0)
static int
@@ -144,12 +144,12 @@
if (!PCM_REGISTERED(d))
return (EINVAL);
- if (mtx_owned(m->lock))
+ if (mtx_owned(&m->lock))
dropmtx = 1;
else
dropmtx = 0;
- if (!(d->flags & SD_F_MPSAFE) || mtx_owned(d->lock) != 0)
+ if (!(d->flags & SD_F_MPSAFE) || mtx_owned(&d->lock) != 0)
acquiremtx = 0;
else
acquiremtx = 1;
@@ -197,12 +197,12 @@
if (!PCM_REGISTERED(d))
return (EINVAL);
- if (mtx_owned(m->lock))
+ if (mtx_owned(&m->lock))
dropmtx = 1;
else
dropmtx = 0;
- if (!(d->flags & SD_F_MPSAFE) || mtx_owned(d->lock) != 0)
+ if (!(d->flags & SD_F_MPSAFE) || mtx_owned(&d->lock) != 0)
acquiremtx = 0;
else
acquiremtx = 1;
@@ -253,7 +253,7 @@
return (-1);
/* It is safe to drop this mutex due to Giant. */
- if (!(d->flags & SD_F_MPSAFE) && mtx_owned(m->lock) != 0)
+ if (!(d->flags & SD_F_MPSAFE) && mtx_owned(&m->lock) != 0)
dropmtx = 1;
else
dropmtx = 0;
@@ -367,7 +367,7 @@
d = device_get_softc(mixer->dev);
if (d == NULL)
return -1;
- if (!(d->flags & SD_F_MPSAFE) && mtx_owned(mixer->lock) != 0)
+ if (!(d->flags & SD_F_MPSAFE) && mtx_owned(&mixer->lock) != 0)
dropmtx = 1;
else
dropmtx = 0;
@@ -647,8 +647,8 @@
strlcat(m->name, ":", sizeof(m->name));
strlcat(m->name, desc, sizeof(m->name));
}
- m->lock = snd_mtxcreate(m->name, (type == MIXER_TYPE_PRIMARY) ?
- "primary pcm mixer" : "secondary pcm mixer");
+ mtx_init(&m->lock, m->name, (type == MIXER_TYPE_PRIMARY) ?
+ "primary pcm mixer" : "secondary pcm mixer", MTX_DEF);
m->type = type;
m->devinfo = devinfo;
m->busy = 0;
@@ -660,8 +660,8 @@
}
if (MIXER_INIT(m)) {
- snd_mtxlock(m->lock);
- snd_mtxfree(m->lock);
+ mtx_lock(&m->lock);
+ mtx_destroy(&m->lock);
kobj_delete((kobj_t)m, M_MIXER);
return (NULL);
}
@@ -680,7 +680,7 @@
MIXER_UNINIT(m);
- snd_mtxfree(m->lock);
+ mtx_destroy(&m->lock);
kobj_delete((kobj_t)m, M_MIXER);
return (0);
@@ -792,20 +792,20 @@
pdev->si_drv1 = NULL;
destroy_dev(pdev);
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
for (i = 0; i < SOUND_MIXER_NRDEVICES; i++)
mixer_set(m, i, 0, 0);
mixer_setrecsrc(m, SOUND_MASK_MIC);
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
/* mixer uninit can sleep --hps */
MIXER_UNINIT(m);
- snd_mtxfree(m->lock);
+ mtx_destroy(&m->lock);
kobj_delete((kobj_t)m, M_MIXER);
d->mixer_dev = NULL;
@@ -822,11 +822,11 @@
pdev = mixer_get_devt(dev);
m = pdev->si_drv1;
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
i = MIXER_REINIT(m);
if (i) {
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return i;
}
@@ -838,7 +838,7 @@
}
mixer_setrecsrc(m, m->recsrc);
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return 0;
}
@@ -851,21 +851,21 @@
struct snd_mixer *m;
m = oidp->oid_arg1;
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
strlcpy(devname, snd_mixernames[m->hwvol_mixer], sizeof(devname));
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
error = sysctl_handle_string(oidp, &devname[0], sizeof(devname), req);
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
if (error == 0 && req->newptr != NULL) {
dev = mixer_lookup(devname);
if (dev == -1) {
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return EINVAL;
} else {
m->hwvol_mixer = dev;
}
}
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return error;
}
@@ -904,9 +904,9 @@
pdev = mixer_get_devt(dev);
m = pdev->si_drv1;
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
mixer_hwvol_mute_locked(m);
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
}
void
@@ -942,9 +942,9 @@
pdev = mixer_get_devt(dev);
m = pdev->si_drv1;
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
mixer_hwvol_step_locked(m, left_step, right_step);
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
}
int
@@ -962,9 +962,9 @@
KASSERT(m != NULL, ("NULL snd_mixer"));
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
ret = mixer_set(m, dev, m->mutedevs, left | (right << 8));
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return ((ret != 0) ? ENXIO : 0);
}
@@ -976,9 +976,9 @@
KASSERT(m != NULL, ("NULL snd_mixer"));
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
ret = mixer_get(m, dev);
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return (ret);
}
@@ -990,9 +990,9 @@
KASSERT(m != NULL, ("NULL snd_mixer"));
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
ret = mixer_setrecsrc(m, src);
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return ((ret != 0) ? ENXIO : 0);
}
@@ -1004,9 +1004,9 @@
KASSERT(m != NULL, ("NULL snd_mixer"));
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
ret = mixer_getrecsrc(m);
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return (ret);
}
@@ -1037,9 +1037,9 @@
/* XXX Need Giant magic entry ??? */
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
m->busy = 1;
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return (0);
}
@@ -1061,10 +1061,10 @@
/* XXX Need Giant magic entry ??? */
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
ret = (m->busy == 0) ? EBADF : 0;
m->busy = 0;
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return (ret);
}
@@ -1142,9 +1142,9 @@
if ((j == SOUND_MIXER_DEVMASK || j == SOUND_MIXER_CAPS ||
j == SOUND_MIXER_STEREODEVS) &&
(cmd & ~0xff) == MIXER_READ(0)) {
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
*(int *)arg = mix_getdevs(m);
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
if (rdch != NULL)
*(int *)arg |= SOUND_MASK_RECLEV;
if (wrch != NULL)
@@ -1261,9 +1261,9 @@
if (m == NULL)
return (EBADF);
- snd_mtxlock(m->lock);
+ mtx_lock(&m->lock);
if (from == MIXER_CMD_CDEV && !m->busy) {
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return (EBADF);
}
switch (cmd) {
@@ -1299,7 +1299,7 @@
ret = mixer_set(m, j, m->mutedevs, *arg_i);
break;
}
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return ((ret == 0) ? 0 : ENXIO);
}
if ((cmd & ~0xff) == MIXER_READ(0)) {
@@ -1323,11 +1323,11 @@
break;
}
*arg_i = v;
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return ((v != -1) ? 0 : ENXIO);
}
done:
- snd_mtxunlock(m->lock);
+ mtx_unlock(&m->lock);
return (ret);
}
@@ -1456,7 +1456,7 @@
}
m = d->mixer_dev->si_drv1;
- mtx_lock(m->lock);
+ mtx_lock(&m->lock);
/*
* At this point, the following synchronization stuff
@@ -1533,7 +1533,7 @@
snprintf(mi->devnode, sizeof(mi->devnode), "/dev/mixer%d", i);
mi->legacy_device = i;
- mtx_unlock(m->lock);
+ mtx_unlock(&m->lock);
PCM_UNLOCK(d);
@@ -1552,8 +1552,5 @@
struct mtx *
mixer_get_lock(struct snd_mixer *m)
{
- if (m->lock == NULL) {
- return (&Giant);
- }
- return (m->lock);
+ return (&m->lock);
}
diff --git a/sys/dev/sound/pcm/sound.h b/sys/dev/sound/pcm/sound.h
--- a/sys/dev/sound/pcm/sound.h
+++ b/sys/dev/sound/pcm/sound.h
@@ -134,7 +134,7 @@
"\016RVCHANS"
#define PCM_REGISTERED(x) \
- ((x) != NULL && (x)->lock != NULL && ((x)->flags & SD_F_REGISTERED))
+ ((x) != NULL && ((x)->flags & SD_F_REGISTERED))
#define PCM_MAXCHANS 10000
#define PCM_CHANCOUNT(d) \
@@ -167,12 +167,6 @@
int snd_setup_intr(device_t dev, struct resource *res, int flags,
driver_intr_t hand, void *param, void **cookiep);
-void *snd_mtxcreate(const char *desc, const char *type);
-void snd_mtxfree(void *m);
-void snd_mtxassert(void *m);
-#define snd_mtxlock(m) mtx_lock(m)
-#define snd_mtxunlock(m) mtx_unlock(m)
-
int sndstat_register(device_t dev, char *str);
int sndstat_unregister(device_t dev);
@@ -218,7 +212,7 @@
void *devinfo;
device_t dev;
char status[SND_STATUSLEN];
- struct mtx *lock;
+ struct mtx lock;
struct cdev *mixer_dev;
struct cdev *dsp_dev;
uint32_t pvchanrate, pvchanformat, pvchanmode;
@@ -240,12 +234,12 @@
#define PCM_MODE_PLAY 0x02
#define PCM_MODE_REC 0x04
-#define PCM_LOCKOWNED(d) mtx_owned((d)->lock)
-#define PCM_LOCK(d) mtx_lock((d)->lock)
-#define PCM_UNLOCK(d) mtx_unlock((d)->lock)
-#define PCM_TRYLOCK(d) mtx_trylock((d)->lock)
-#define PCM_LOCKASSERT(d) mtx_assert((d)->lock, MA_OWNED)
-#define PCM_UNLOCKASSERT(d) mtx_assert((d)->lock, MA_NOTOWNED)
+#define PCM_LOCKOWNED(d) mtx_owned(&(d)->lock)
+#define PCM_LOCK(d) mtx_lock(&(d)->lock)
+#define PCM_UNLOCK(d) mtx_unlock(&(d)->lock)
+#define PCM_TRYLOCK(d) mtx_trylock(&(d)->lock)
+#define PCM_LOCKASSERT(d) mtx_assert(&(d)->lock, MA_OWNED)
+#define PCM_UNLOCKASSERT(d) mtx_assert(&(d)->lock, MA_NOTOWNED)
/*
* For PCM_[WAIT | ACQUIRE | RELEASE], be sure to surround these
@@ -254,7 +248,7 @@
#define PCM_WAIT(x) do { \
PCM_LOCKASSERT(x); \
while ((x)->flags & SD_F_BUSY) \
- cv_wait(&(x)->cv, (x)->lock); \
+ cv_wait(&(x)->cv, &(x)->lock); \
} while (0)
#define PCM_ACQUIRE(x) do { \
diff --git a/sys/dev/sound/pcm/sound.c b/sys/dev/sound/pcm/sound.c
--- a/sys/dev/sound/pcm/sound.c
+++ b/sys/dev/sound/pcm/sound.c
@@ -62,35 +62,6 @@
*/
struct unrhdr *pcmsg_unrhdr = NULL;
-void *
-snd_mtxcreate(const char *desc, const char *type)
-{
- struct mtx *m;
-
- m = malloc(sizeof(*m), M_DEVBUF, M_WAITOK | M_ZERO);
- mtx_init(m, desc, type, MTX_DEF);
- return m;
-}
-
-void
-snd_mtxfree(void *m)
-{
- struct mtx *mtx = m;
-
- mtx_destroy(mtx);
- free(mtx, M_DEVBUF);
-}
-
-void
-snd_mtxassert(void *m)
-{
-#ifdef INVARIANTS
- struct mtx *mtx = m;
-
- mtx_assert(mtx, MA_OWNED);
-#endif
-}
-
int
snd_setup_intr(device_t dev, struct resource *res, int flags, driver_intr_t hand, void *param, void **cookiep)
{
@@ -361,7 +332,7 @@
d = device_get_softc(dev);
d->dev = dev;
- d->lock = snd_mtxcreate(device_get_nameunit(dev), "sound cdev");
+ mtx_init(&d->lock, device_get_nameunit(dev), "sound cdev", MTX_DEF);
cv_init(&d->cv, device_get_nameunit(dev));
i = 0;
@@ -498,7 +469,7 @@
dsp_destroy_dev(dev);
cv_destroy(&d->cv);
- snd_mtxfree(d->lock);
+ mtx_destroy(&d->lock);
if (snd_unit == device_get_unit(dev)) {
snd_unit = pcm_best_unit(-1);
diff --git a/sys/dev/sound/usb/uaudio.c b/sys/dev/sound/usb/uaudio.c
--- a/sys/dev/sound/usb/uaudio.c
+++ b/sys/dev/sound/usb/uaudio.c
@@ -2664,7 +2664,7 @@
/* store mutex and PCM channel */
ch->pcm_ch = c;
- ch->pcm_mtx = c->lock;
+ ch->pcm_mtx = &c->lock;
/* compute worst case buffer */
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, May 21, 8:06 AM (19 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33371747
Default Alt Text
D53855.diff (95 KB)
Attached To
Mode
D53855: sound: Retire snd_mtx* wrappers
Attached
Detach File
Event Timeline
Log In to Comment