The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=815dc35b7b5ed694fc1986d054149e375b8a17bd
commit 815dc35b7b5ed694fc1986d054149e375b8a17bd Author: Christos Margiolis <[email protected]> AuthorDate: 2026-07-08 18:18:49 +0000 Commit: Christos Margiolis <[email protected]> CommitDate: 2026-07-08 18:18:49 +0000 sound: Pass format and speed as arguments to sndbuf_create() Sponsored by: The FreeBSD Foundation MFC after: 1 week --- sys/dev/sound/pcm/buffer.c | 5 ++++- sys/dev/sound/pcm/buffer.h | 2 +- sys/dev/sound/pcm/channel.c | 8 ++------ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/sys/dev/sound/pcm/buffer.c b/sys/dev/sound/pcm/buffer.c index 86278a46a731..73f75716a198 100644 --- a/sys/dev/sound/pcm/buffer.c +++ b/sys/dev/sound/pcm/buffer.c @@ -46,7 +46,8 @@ #include "snd_fxdiv_gen.h" struct snd_dbuf * -sndbuf_create(struct pcm_channel *channel, const char *desc) +sndbuf_create(struct pcm_channel *channel, u_int32_t fmt, u_int32_t spd, + const char *desc) { struct snd_dbuf *b; @@ -54,6 +55,8 @@ sndbuf_create(struct pcm_channel *channel, const char *desc) refcount_init(&b->refcount, 1); snprintf(b->name, SNDBUF_NAMELEN, "%s:%s", channel->name, desc); b->channel = channel; + sndbuf_setfmt(b, fmt); + sndbuf_setspd(b, spd); return b; } diff --git a/sys/dev/sound/pcm/buffer.h b/sys/dev/sound/pcm/buffer.h index fee41db2ff82..34f885db6609 100644 --- a/sys/dev/sound/pcm/buffer.h +++ b/sys/dev/sound/pcm/buffer.h @@ -60,7 +60,7 @@ struct snd_dbuf { char name[SNDBUF_NAMELEN]; }; -struct snd_dbuf *sndbuf_create(struct pcm_channel *channel, const char *desc); +struct snd_dbuf *sndbuf_create(struct pcm_channel *channel, u_int32_t fmt, u_int32_t spd, const char *desc); void sndbuf_destroy(struct snd_dbuf *b); void sndbuf_ref(struct snd_dbuf *b); void sndbuf_rele(struct snd_dbuf *b); diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index 40a08d48fb21..ff7620c772c3 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -1223,8 +1223,8 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, chn_vpc_reset(c, SND_VOL_C_PCM, 1); CHN_UNLOCK(c); - b = sndbuf_create(c, "primary"); - bs = sndbuf_create(c, "secondary"); + b = sndbuf_create(c, c->format, c->speed, "primary"); + bs = sndbuf_create(c, c->format, c->speed, "secondary"); if (b == NULL || bs == NULL) { device_printf(d->dev, "%s(): failed to create %s buffer\n", __func__, b == NULL ? "hardware" : "software"); @@ -1246,10 +1246,6 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, goto fail; } - sndbuf_setfmt(b, c->format); - sndbuf_setspd(b, c->speed); - sndbuf_setfmt(bs, c->format); - sndbuf_setspd(bs, c->speed); sndbuf_setup(bs, NULL, 0); /**
