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);
 
        /**

Reply via email to