summaryrefslogtreecommitdiffstats
path: root/sys/dev/sound/pcm/channel.c
diff options
context:
space:
mode:
authorcg <cg@FreeBSD.org>2002-11-25 17:17:43 +0000
committercg <cg@FreeBSD.org>2002-11-25 17:17:43 +0000
commitc9457db52b78b8fe2844cb837ee11d32cb013d0b (patch)
treeac1448d81f09f0d496c1b9ce490a1df51856353d /sys/dev/sound/pcm/channel.c
parent79ac90c6dbdb26a4402c5fb31a4a94d6e72e133e (diff)
downloadFreeBSD-src-c9457db52b78b8fe2844cb837ee11d32cb013d0b.zip
FreeBSD-src-c9457db52b78b8fe2844cb837ee11d32cb013d0b.tar.gz
various fixes to eliminate locking warnings
Approved by: re Reviewed by: orion
Diffstat (limited to 'sys/dev/sound/pcm/channel.c')
-rw-r--r--sys/dev/sound/pcm/channel.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c
index d81125b..9bf9158 100644
--- a/sys/dev/sound/pcm/channel.c
+++ b/sys/dev/sound/pcm/channel.c
@@ -674,7 +674,6 @@ chn_init(struct pcm_channel *c, void *devinfo, int dir)
int ret;
chn_lockinit(c);
- CHN_LOCK(c);
b = NULL;
bs = NULL;
@@ -739,7 +738,6 @@ out:
return ret;
}
- CHN_UNLOCK(c);
return 0;
}
@@ -749,7 +747,6 @@ chn_kill(struct pcm_channel *c)
struct snd_dbuf *b = c->bufhard;
struct snd_dbuf *bs = c->bufsoft;
- CHN_LOCK(c);
if (c->flags & CHN_F_TRIGGERED)
chn_trigger(c, PCMTRIG_ABORT);
while (chn_removefeeder(c) == 0);
@@ -929,7 +926,7 @@ chn_setblocksize(struct pcm_channel *c, int blkcnt, int blksz)
blkcnt = CHN_2NDBUFMAXSIZE / blksz;
RANGE(blksz, 16, CHN_2NDBUFMAXSIZE / 2);
- RANGE(blkcnt, 2, CHN_2NDBUFMAXSIZE / blksz);
+ RANGE(blkcnt, 2, CHN_2NDBUFMAXSIZE / blksz);
DEB(printf("%s: defaulting to (%d, %d)\n", __func__, blkcnt, blksz));
} else {
blkcnt = sndbuf_getblkcnt(bs);
@@ -946,10 +943,9 @@ chn_setblocksize(struct pcm_channel *c, int blkcnt, int blksz)
bufsz = blkcnt * blksz;
- ret = ENOMEM;
- if (sndbuf_remalloc(bs, blkcnt, blksz))
+ ret = sndbuf_remalloc(bs, blkcnt, blksz);
+ if (ret)
goto out;
- ret = 0;
/* adjust for different hw format/speed */
irqhz = (sndbuf_getbps(bs) * sndbuf_getspd(bs)) / sndbuf_getblksz(bs);
@@ -1127,6 +1123,14 @@ chn_buildfeeder(struct pcm_channel *c)
tmp[1] = 0;
hwfmt = chn_fmtchain(c, tmp);
} else {
+#if 0
+ u_int32_t *x = chn_getcaps(c)->fmtlist;
+ printf("acceptable formats for %s:\n", c->name);
+ while (*x) {
+ printf("[%8x] ", *x);
+ x++;
+ }
+#endif
hwfmt = chn_fmtchain(c, chn_getcaps(c)->fmtlist);
}
}
OpenPOWER on IntegriCloud