The branch main has been updated by christos:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=78c5026ae13b2d30b479f9bc892ecdb6f5a5bc0b

commit 78c5026ae13b2d30b479f9bc892ecdb6f5a5bc0b
Author:     Christos Margiolis <[email protected]>
AuthorDate: 2025-11-11 12:05:34 +0000
Commit:     Christos Margiolis <[email protected]>
CommitDate: 2025-11-11 12:05:34 +0000

    sound: Get rid of useless sndbuf getters and setters
    
    No functional change intended.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential Revision:  https://reviews.freebsd.org/D53528
---
 sys/arm/allwinner/a10_codec.c            |   2 +-
 sys/arm/allwinner/aw_i2s.c               |   8 +-
 sys/arm/broadcom/bcm2835/bcm2835_audio.c |   9 +-
 sys/arm/freescale/imx/imx6_ssi.c         |  10 +--
 sys/arm/freescale/vybrid/vf_sai.c        |   2 +-
 sys/arm64/rockchip/rk_i2s.c              |   8 +-
 sys/dev/sound/dummy.c                    |   8 +-
 sys/dev/sound/fdt/audio_soc.c            |   2 +-
 sys/dev/sound/macio/aoa.c                |   4 +-
 sys/dev/sound/pci/als4000.c              |  10 +--
 sys/dev/sound/pci/atiixp.c               |  25 +++---
 sys/dev/sound/pci/cmi.c                  |   6 +-
 sys/dev/sound/pci/cs4281.c               |   8 +-
 sys/dev/sound/pci/csapcm.c               |   8 +-
 sys/dev/sound/pci/emu10k1.c              |   8 +-
 sys/dev/sound/pci/emu10kx-pcm.c          |  12 +--
 sys/dev/sound/pci/es137x.c               |  24 +++---
 sys/dev/sound/pci/fm801.c                |   2 +-
 sys/dev/sound/pci/hda/hdaa.c             |  18 ++--
 sys/dev/sound/pci/hdsp-pcm.c             |   2 +-
 sys/dev/sound/pci/hdspe-pcm.c            |   2 +-
 sys/dev/sound/pci/ich.c                  |  16 ++--
 sys/dev/sound/pci/maestro3.c             |  20 ++---
 sys/dev/sound/pci/neomagic.c             |   2 +-
 sys/dev/sound/pci/solo.c                 |   3 +-
 sys/dev/sound/pci/t4dwave.c              |  10 +--
 sys/dev/sound/pci/via8233.c              |  26 +++---
 sys/dev/sound/pci/via82c686.c            |   6 +-
 sys/dev/sound/pci/vibes.c                |  12 +--
 sys/dev/sound/pcm/buffer.c               | 144 ++-----------------------------
 sys/dev/sound/pcm/buffer.h               |  22 -----
 sys/dev/sound/pcm/channel.c              | 133 ++++++++++++++--------------
 sys/dev/sound/pcm/dsp.c                  |  44 +++++-----
 sys/dev/sound/pcm/feeder.c               |   8 +-
 sys/dev/sound/pcm/feeder_chain.c         |   4 +-
 sys/dev/sound/pcm/feeder_mixer.c         |  14 +--
 sys/dev/sound/pcm/sndstat.c              |  55 ++++++------
 sys/dev/sound/pcm/vchan.c                |   4 +-
 sys/dev/sound/pcm/vchan.h                |   4 +-
 39 files changed, 272 insertions(+), 433 deletions(-)

diff --git a/sys/arm/allwinner/a10_codec.c b/sys/arm/allwinner/a10_codec.c
index 12d389d24243..0a4ba7aa31b2 100644
--- a/sys/arm/allwinner/a10_codec.c
+++ b/sys/arm/allwinner/a10_codec.c
@@ -680,7 +680,7 @@ a10codec_dmaintr(void *priv)
        struct a10codec_chinfo *ch = priv;
        unsigned bufsize;
 
-       bufsize = sndbuf_getsize(ch->buffer);
+       bufsize = ch->buffer->bufsize;
 
        ch->pos += ch->blocksize;
        if (ch->pos >= bufsize)
diff --git a/sys/arm/allwinner/aw_i2s.c b/sys/arm/allwinner/aw_i2s.c
index 87dfb109363f..31c6d9854171 100644
--- a/sys/arm/allwinner/aw_i2s.c
+++ b/sys/arm/allwinner/aw_i2s.c
@@ -530,10 +530,10 @@ aw_i2s_dai_intr(device_t dev, struct snd_dbuf *play_buf, 
struct snd_dbuf *rec_bu
                val  = I2S_READ(sc, DA_FSTA);
                empty = DA_FSTA_TXE_CNT(val);
                count = sndbuf_getready(play_buf);
-               size = sndbuf_getsize(play_buf);
+               size = play_buf->bufsize;
                readyptr = sndbuf_getreadyptr(play_buf);
 
-               samples = (uint8_t*)sndbuf_getbuf(play_buf);
+               samples = play_buf->buf;
                written = 0;
                if (empty > count / 2)
                        empty = count / 2;
@@ -556,9 +556,9 @@ aw_i2s_dai_intr(device_t dev, struct snd_dbuf *play_buf, 
struct snd_dbuf *rec_bu
                available = DA_FSTA_RXA_CNT(val);
 
                count = sndbuf_getfree(rec_buf);
-               size = sndbuf_getsize(rec_buf);
+               size = rec_buf->bufsize;
                freeptr = sndbuf_getfreeptr(rec_buf);
-               samples = (uint8_t*)sndbuf_getbuf(rec_buf);
+               samples = rec_buf->buf;
                recorded = 0;
                if (available > count / 2)
                        available = count / 2;
diff --git a/sys/arm/broadcom/bcm2835/bcm2835_audio.c 
b/sys/arm/broadcom/bcm2835/bcm2835_audio.c
index 2df6ac76124f..06bbc67bd7bd 100644
--- a/sys/arm/broadcom/bcm2835/bcm2835_audio.c
+++ b/sys/arm/broadcom/bcm2835/bcm2835_audio.c
@@ -575,7 +575,7 @@ bcm2835_audio_worker(void *data)
                        continue;
 
                count = sndbuf_getready(ch->buffer);
-               size = sndbuf_getsize(ch->buffer);
+               size = ch->buffer->bufsize;
                readyptr = sndbuf_getreadyptr(ch->buffer);
 
                BCM2835_AUDIO_LOCK(sc);
@@ -588,11 +588,12 @@ bcm2835_audio_worker(void *data)
                if (count < VCHIQ_AUDIO_PACKET_SIZE)
                        continue;
 
-               buf = (uint8_t*)sndbuf_getbuf(ch->buffer) + readyptr;
+               buf = ch->buffer->buf + readyptr;
 
                bcm2835_audio_write_samples(ch, buf, count);
                BCM2835_AUDIO_LOCK(sc);
-               ch->unsubmittedptr = (ch->unsubmittedptr + count) % 
sndbuf_getsize(ch->buffer);
+               ch->unsubmittedptr = (ch->unsubmittedptr + count) %
+                   ch->buffer->bufsize;
                ch->available_space -= count;
                ch->submitted_samples += count;
                KASSERT(ch->available_space >= 0, ("ch->available_space == 
%d\n", ch->available_space));
@@ -662,7 +663,7 @@ bcmchan_free(kobj_t obj, void *data)
        struct bcm2835_audio_chinfo *ch = data;
        void *buffer;
 
-       buffer = sndbuf_getbuf(ch->buffer);
+       buffer = ch->buffer->buf;
        if (buffer)
                free(buffer, M_DEVBUF);
 
diff --git a/sys/arm/freescale/imx/imx6_ssi.c b/sys/arm/freescale/imx/imx6_ssi.c
index cb77f1454e63..5a0e671f15a2 100644
--- a/sys/arm/freescale/imx/imx6_ssi.c
+++ b/sys/arm/freescale/imx/imx6_ssi.c
@@ -398,7 +398,7 @@ ssichan_setblocksize(kobj_t obj, void *data, uint32_t 
blocksize)
 
        setup_dma(scp);
 
-       return (sndbuf_getblksz(ch->buffer));
+       return (ch->buffer->blksz);
 }
 
 uint32_t
@@ -415,7 +415,7 @@ ssi_dma_intr(void *arg, int chn)
        sc = scp->sc;
        conf = sc->conf;
 
-       bufsize = sndbuf_getsize(ch->buffer);
+       bufsize = ch->buffer->bufsize;
 
        sc->pos += conf->period;
        if (sc->pos >= bufsize)
@@ -487,8 +487,8 @@ setup_dma(struct sc_pcminfo *scp)
        conf->saddr = sc->buf_base_phys;
        conf->daddr = rman_get_start(sc->res[0]) + SSI_STX0;
        conf->event = sc->sdma_ev_tx; /* SDMA TX event */
-       conf->period = sndbuf_getblksz(ch->buffer);
-       conf->num_bd = sndbuf_getblkcnt(ch->buffer);
+       conf->period = ch->buffer->blksz;
+       conf->num_bd = ch->buffer->blkcnt;
 
        /*
         * Word Length
@@ -497,7 +497,7 @@ setup_dma(struct sc_pcminfo *scp)
         * SSI supports 24 at max.
         */
 
-       fmt = sndbuf_getfmt(ch->buffer);
+       fmt = ch->buffer->fmt;
 
        if (fmt & AFMT_16BIT) {
                conf->word_length = 16;
diff --git a/sys/arm/freescale/vybrid/vf_sai.c 
b/sys/arm/freescale/vybrid/vf_sai.c
index e895529c4810..9c0125768fee 100644
--- a/sys/arm/freescale/vybrid/vf_sai.c
+++ b/sys/arm/freescale/vybrid/vf_sai.c
@@ -369,7 +369,7 @@ saichan_setblocksize(kobj_t obj, void *data, uint32_t 
blocksize)
 
        sndbuf_resize(ch->buffer, sc->dma_size / blocksize, blocksize);
 
-       sc->period = sndbuf_getblksz(ch->buffer);
+       sc->period = ch->buffer->blksz;
        return (sc->period);
 }
 
diff --git a/sys/arm64/rockchip/rk_i2s.c b/sys/arm64/rockchip/rk_i2s.c
index 5f1b6bbdeabf..856fa20e6ce4 100644
--- a/sys/arm64/rockchip/rk_i2s.c
+++ b/sys/arm64/rockchip/rk_i2s.c
@@ -403,10 +403,10 @@ rk_i2s_dai_intr(device_t dev, struct snd_dbuf *play_buf, 
struct snd_dbuf *rec_bu
                count = sndbuf_getready(play_buf);
                if (count > FIFO_SIZE - 1)
                        count = FIFO_SIZE - 1;
-               size = sndbuf_getsize(play_buf);
+               size = play_buf->bufsize;
                readyptr = sndbuf_getreadyptr(play_buf);
 
-               samples = (uint8_t*)sndbuf_getbuf(play_buf);
+               samples = play_buf->buf;
                written = 0;
                for (; level < count; level++) {
                        val  = (samples[readyptr++ % size] << 0);
@@ -426,9 +426,9 @@ rk_i2s_dai_intr(device_t dev, struct snd_dbuf *play_buf, 
struct snd_dbuf *rec_bu
                uint8_t *samples;
                uint32_t count, size, freeptr, recorded;
                count = sndbuf_getfree(rec_buf);
-               size = sndbuf_getsize(rec_buf);
+               size = rec_buf->bufsize;
                freeptr = sndbuf_getfreeptr(rec_buf);
-               samples = (uint8_t*)sndbuf_getbuf(rec_buf);
+               samples = rec_buf->buf;
                recorded = 0;
                if (level > count / 4)
                        level = count / 4;
diff --git a/sys/dev/sound/dummy.c b/sys/dev/sound/dummy.c
index 39214a141bf9..0a2717ec418c 100644
--- a/sys/dev/sound/dummy.c
+++ b/sys/dev/sound/dummy.c
@@ -105,8 +105,8 @@ dummy_chan_io(void *arg)
                if (!ch->run)
                        continue;
                if (ch->dir == PCMDIR_PLAY) {
-                       ch->ptr += sndbuf_getblksz(ch->buf);
-                       ch->ptr %= sndbuf_getsize(ch->buf);
+                       ch->ptr += ch->buf->blksz;
+                       ch->ptr %= ch->buf->bufsize;
                } else
                        sndbuf_fillsilence(ch->buf);
                snd_mtxunlock(sc->lock);
@@ -123,7 +123,7 @@ dummy_chan_free(kobj_t obj, void *data)
        struct dummy_chan *ch =data;
        uint8_t *buf;
 
-       buf = sndbuf_getbuf(ch->buf);
+       buf = ch->buf->buf;
        if (buf != NULL)
                free(buf, M_DEVBUF);
 
@@ -190,7 +190,7 @@ dummy_chan_setblocksize(kobj_t obj, void *data, uint32_t 
blocksize)
 {
        struct dummy_chan *ch = data;
 
-       return (sndbuf_getblksz(ch->buf));
+       return (ch->buf->blksz);
 }
 
 static int
diff --git a/sys/dev/sound/fdt/audio_soc.c b/sys/dev/sound/fdt/audio_soc.c
index c2bdea399364..84867cb3d781 100644
--- a/sys/dev/sound/fdt/audio_soc.c
+++ b/sys/dev/sound/fdt/audio_soc.c
@@ -249,7 +249,7 @@ audio_soc_chan_free(kobj_t obj, void *data)
 
        ausoc_chan = (struct audio_soc_channel *)data;
 
-       buffer = sndbuf_getbuf(ausoc_chan->buf);
+       buffer = ausoc_chan->buf->buf;
        if (buffer)
                free(buffer, M_DEVBUF);
 
diff --git a/sys/dev/sound/macio/aoa.c b/sys/dev/sound/macio/aoa.c
index 9861bbd92a0c..e0a6206c19a6 100644
--- a/sys/dev/sound/macio/aoa.c
+++ b/sys/dev/sound/macio/aoa.c
@@ -73,8 +73,8 @@ aoa_dma_set_program(struct aoa_dma *dma)
        u_int32_t                addr;
        int                      i;
 
-       addr = (u_int32_t) sndbuf_getbufaddr(dma->buf);
-       KASSERT(dma->bufsz == sndbuf_getsize(dma->buf), ("bad size"));
+       addr = (u_int32_t)dma->buf->buf_addr;
+       KASSERT(dma->bufsz == dma->buf->bufsize, ("bad size"));
 
        dma->slots = dma->bufsz / dma->blksz;
 
diff --git a/sys/dev/sound/pci/als4000.c b/sys/dev/sound/pci/als4000.c
index 9d86713b379e..75fbefe27633 100644
--- a/sys/dev/sound/pci/als4000.c
+++ b/sys/dev/sound/pci/als4000.c
@@ -281,7 +281,7 @@ alschan_getptr(kobj_t obj, void *data)
        snd_mtxlock(sc->lock);
        pos = als_gcr_rd(ch->parent, ch->gcr_fifo_status) & 0xffff;
        snd_mtxunlock(sc->lock);
-       sz  = sndbuf_getsize(ch->buffer);
+       sz  = ch->buffer->bufsize;
        return (2 * sz - pos - 1) % sz;
 }
 
@@ -348,8 +348,8 @@ als_playback_start(struct sc_chinfo *ch)
        struct  sc_info *sc = ch->parent;
        u_int32_t       buf, bufsz, count, dma_prog;
 
-       buf = sndbuf_getbufaddr(ch->buffer);
-       bufsz = sndbuf_getsize(ch->buffer);
+       buf = ch->buffer->buf_addr;
+       bufsz = ch->buffer->bufsize;
        count = bufsz / 2;
        if (ch->format & AFMT_16BIT)
                count /= 2;
@@ -451,8 +451,8 @@ als_capture_start(struct sc_chinfo *ch)
        struct  sc_info *sc = ch->parent;
        u_int32_t       buf, bufsz, count, dma_prog;
 
-       buf = sndbuf_getbufaddr(ch->buffer);
-       bufsz = sndbuf_getsize(ch->buffer);
+       buf = ch->buffer->buf_addr;
+       bufsz = ch->buffer->bufsize;
        count = bufsz / 2;
        if (ch->format & AFMT_16BIT)
                count /= 2;
diff --git a/sys/dev/sound/pci/atiixp.c b/sys/dev/sound/pci/atiixp.c
index 90e5742e6523..30f061fd9388 100644
--- a/sys/dev/sound/pci/atiixp.c
+++ b/sys/dev/sound/pci/atiixp.c
@@ -535,8 +535,8 @@ atiixp_chan_setfragments(kobj_t obj, void *data,
 
        blksz &= ATI_IXP_BLK_ALIGN;
 
-       if (blksz > (sndbuf_getmaxsize(ch->buffer) / ATI_IXP_DMA_CHSEGS_MIN))
-               blksz = sndbuf_getmaxsize(ch->buffer) / ATI_IXP_DMA_CHSEGS_MIN;
+       if (blksz > (ch->buffer->maxsize / ATI_IXP_DMA_CHSEGS_MIN))
+               blksz = ch->buffer->maxsize / ATI_IXP_DMA_CHSEGS_MIN;
        if (blksz < ATI_IXP_BLK_MIN)
                blksz = ATI_IXP_BLK_MIN;
        if (blkcnt > ATI_IXP_DMA_CHSEGS_MAX)
@@ -544,7 +544,7 @@ atiixp_chan_setfragments(kobj_t obj, void *data,
        if (blkcnt < ATI_IXP_DMA_CHSEGS_MIN)
                blkcnt = ATI_IXP_DMA_CHSEGS_MIN;
 
-       while ((blksz * blkcnt) > sndbuf_getmaxsize(ch->buffer)) {
+       while ((blksz * blkcnt) > ch->buffer->maxsize) {
                if ((blkcnt >> 1) >= ATI_IXP_DMA_CHSEGS_MIN)
                        blkcnt >>= 1;
                else if ((blksz >> 1) >= ATI_IXP_BLK_MIN)
@@ -553,14 +553,14 @@ atiixp_chan_setfragments(kobj_t obj, void *data,
                        break;
        }
 
-       if ((sndbuf_getblksz(ch->buffer) != blksz ||
-           sndbuf_getblkcnt(ch->buffer) != blkcnt) &&
+       if ((ch->buffer->blksz != blksz ||
+           ch->buffer->blkcnt != blkcnt) &&
            sndbuf_resize(ch->buffer, blkcnt, blksz) != 0)
                device_printf(sc->dev, "%s: failed blksz=%u blkcnt=%u\n",
                    __func__, blksz, blkcnt);
 
-       ch->blksz = sndbuf_getblksz(ch->buffer);
-       ch->blkcnt = sndbuf_getblkcnt(ch->buffer);
+       ch->blksz = ch->buffer->blksz;
+       ch->blkcnt = ch->buffer->blkcnt;
 
        return (0);
 }
@@ -583,7 +583,7 @@ atiixp_buildsgdt(struct atiixp_chinfo *ch)
        uint32_t addr, blksz, blkcnt;
        int i;
 
-       addr = sndbuf_getbufaddr(ch->buffer);
+       addr = ch->buffer->buf_addr;
 
        if (sc->polling != 0) {
                blksz = ch->blksz * ch->blkcnt;
@@ -610,7 +610,7 @@ atiixp_dmapos(struct atiixp_chinfo *ch)
        volatile uint32_t ptr;
 
        reg = ch->dt_cur_bit;
-       addr = sndbuf_getbufaddr(ch->buffer);
+       addr = ch->buffer->buf_addr;
        sz = ch->blkcnt * ch->blksz;
        retry = ATI_IXP_DMA_RETRY_MAX;
 
@@ -739,8 +739,7 @@ atiixp_chan_trigger(kobj_t obj, void *data, int go)
                        ch->ptr = 0;
                        ch->prevptr = 0;
                        pollticks = ((uint64_t)hz * ch->blksz) /
-                           ((uint64_t)sndbuf_getalign(ch->buffer) *
-                           sndbuf_getspd(ch->buffer));
+                           ((uint64_t)ch->buffer->align * ch->buffer->spd);
                        pollticks >>= 2;
                        if (pollticks > hz)
                                pollticks = hz;
@@ -781,8 +780,8 @@ atiixp_chan_trigger(kobj_t obj, void *data, int go)
                                else
                                        ch = &sc->rch;
                                pollticks = ((uint64_t)hz * ch->blksz) /
-                                   ((uint64_t)sndbuf_getalign(ch->buffer) *
-                                   sndbuf_getspd(ch->buffer));
+                                   ((uint64_t)ch->buffer->align *
+                                   ch->buffer->spd);
                                pollticks >>= 2;
                                if (pollticks > hz)
                                        pollticks = hz;
diff --git a/sys/dev/sound/pci/cmi.c b/sys/dev/sound/pci/cmi.c
index 22f1e76a4d1f..a1356f58b567 100644
--- a/sys/dev/sound/pci/cmi.c
+++ b/sys/dev/sound/pci/cmi.c
@@ -255,10 +255,10 @@ cmi_dma_prog(struct sc_info *sc, struct sc_chinfo *ch, 
u_int32_t base)
 {
        u_int32_t s, i, sz;
 
-       ch->phys_buf = sndbuf_getbufaddr(ch->buffer);
+       ch->phys_buf = ch->buffer->buf_addr;
 
        cmi_wr(sc, base, ch->phys_buf, 4);
-       sz = (u_int32_t)sndbuf_getsize(ch->buffer);
+       sz = (u_int32_t)ch->buffer->bufsize;
 
        s = sz / ch->bps - 1;
        cmi_wr(sc, base + 4, s, 2);
@@ -525,7 +525,7 @@ cmichan_getptr(kobj_t obj, void *data)
        }
        snd_mtxunlock(sc->lock);
 
-       sz = sndbuf_getsize(ch->buffer);
+       sz = ch->buffer->bufsize;
        bufptr = (physptr - ch->phys_buf + sz - ch->bps) % sz;
 
        return bufptr;
diff --git a/sys/dev/sound/pci/cs4281.c b/sys/dev/sound/pci/cs4281.c
index 7a25f7f4c08d..af2b4da76aba 100644
--- a/sys/dev/sound/pci/cs4281.c
+++ b/sys/dev/sound/pci/cs4281.c
@@ -328,7 +328,7 @@ cs4281chan_init(kobj_t obj, void *devinfo, struct snd_dbuf 
*b, struct pcm_channe
     ch->fmt = SND_FORMAT(AFMT_U8, 1, 0);
     ch->spd = DSP_DEFAULT_SPEED;
     ch->bps = 1;
-    ch->blksz = sndbuf_getsize(ch->buffer);
+    ch->blksz = ch->buffer->bufsize;
 
     ch->dma_chan = (dir == PCMDIR_PLAY) ? CS4281_DMA_PLAY : CS4281_DMA_REC;
     ch->dma_setup = 0;
@@ -412,7 +412,7 @@ cs4281chan_getptr(kobj_t obj, void *data)
     u_int32_t  dba, dca, ptr;
     int sz;
 
-    sz  = sndbuf_getsize(ch->buffer);
+    sz  = ch->buffer->bufsize;
     dba = cs4281_rd(sc, CS4281PCI_DBA(ch->dma_chan));
     dca = cs4281_rd(sc, CS4281PCI_DCA(ch->dma_chan));
     ptr = (dca - dba + sz) % sz;
@@ -493,9 +493,9 @@ adcdac_prog(struct sc_chinfo *ch)
     if (!ch->dma_setup) {
        go = adcdac_go(ch, 0);
        cs4281_wr(sc, CS4281PCI_DBA(ch->dma_chan),
-                 sndbuf_getbufaddr(ch->buffer));
+                 ch->buffer->buf_addr);
        cs4281_wr(sc, CS4281PCI_DBC(ch->dma_chan),
-                 sndbuf_getsize(ch->buffer) / ch->bps - 1);
+                 ch->buffer->bufsize / ch->bps - 1);
        ch->dma_setup = 1;
        adcdac_go(ch, go);
     }
diff --git a/sys/dev/sound/pci/csapcm.c b/sys/dev/sound/pci/csapcm.c
index a966a2e66402..688aee6400d8 100644
--- a/sys/dev/sound/pci/csapcm.c
+++ b/sys/dev/sound/pci/csapcm.c
@@ -483,7 +483,7 @@ csa_setupchan(struct csa_chinfo *ch)
 
        if (ch->dir == PCMDIR_PLAY) {
                /* direction */
-               csa_writemem(resp, BA1_PBA, sndbuf_getbufaddr(ch->buffer));
+               csa_writemem(resp, BA1_PBA, ch->buffer->buf_addr);
 
                /* format */
                csa->pfie = csa_readmem(resp, BA1_PFIE) & ~0x0000f03f;
@@ -512,7 +512,7 @@ csa_setupchan(struct csa_chinfo *ch)
                csa_setplaysamplerate(resp, ch->spd);
        } else if (ch->dir == PCMDIR_REC) {
                /* direction */
-               csa_writemem(resp, BA1_CBA, sndbuf_getbufaddr(ch->buffer));
+               csa_writemem(resp, BA1_CBA, ch->buffer->buf_addr);
 
                /* format */
                csa_writemem(resp, BA1_CIE, (csa_readmem(resp, BA1_CIE) & 
~0x0000003f) | 0x00000001);
@@ -602,11 +602,11 @@ csachan_getptr(kobj_t obj, void *data)
        resp = &csa->res;
 
        if (ch->dir == PCMDIR_PLAY) {
-               ptr = csa_readmem(resp, BA1_PBA) - 
sndbuf_getbufaddr(ch->buffer);
+               ptr = csa_readmem(resp, BA1_PBA) - ch->buffer->buf_addr;
                if ((ch->fmt & AFMT_U8) != 0 || (ch->fmt & AFMT_S8) != 0)
                        ptr >>= 1;
        } else {
-               ptr = csa_readmem(resp, BA1_CBA) - 
sndbuf_getbufaddr(ch->buffer);
+               ptr = csa_readmem(resp, BA1_CBA) - ch->buffer->buf_addr;
                if ((ch->fmt & AFMT_U8) != 0 || (ch->fmt & AFMT_S8) != 0)
                        ptr >>= 1;
        }
diff --git a/sys/dev/sound/pci/emu10k1.c b/sys/dev/sound/pci/emu10k1.c
index e4b2c22f4f07..a85031977f4b 100644
--- a/sys/dev/sound/pci/emu10k1.c
+++ b/sys/dev/sound/pci/emu10k1.c
@@ -413,7 +413,7 @@ emu_settimer(struct sc_info *sc)
        for (i = 0; i < sc->nchans; i++) {
                pch = &sc->pch[i];
                if (pch->buffer) {
-                       tmp = (pch->spd * sndbuf_getalign(pch->buffer))
+                       tmp = (pch->spd * pch->buffer->align)
                            / pch->blksz;
                        if (tmp > rate)
                                rate = tmp;
@@ -423,7 +423,7 @@ emu_settimer(struct sc_info *sc)
        for (i = 0; i < 3; i++) {
                rch = &sc->rch[i];
                if (rch->buffer) {
-                       tmp = (rch->spd * sndbuf_getalign(rch->buffer))
+                       tmp = (rch->spd * rch->buffer->align)
                            / rch->blksz;
                        if (tmp > rate)
                                rate = tmp;
@@ -838,7 +838,7 @@ emupchan_free(kobj_t obj, void *data)
        int r;
 
        snd_mtxlock(sc->lock);
-       r = emu_memfree(sc, sndbuf_getbuf(ch->buffer));
+       r = emu_memfree(sc, ch->buffer->buf);
        snd_mtxunlock(sc->lock);
 
        return r;
@@ -985,7 +985,7 @@ emurchan_init(kobj_t obj, void *devinfo, struct snd_dbuf *b,
                return NULL;
        else {
                snd_mtxlock(sc->lock);
-               emu_wrptr(sc, 0, ch->basereg, sndbuf_getbufaddr(ch->buffer));
+               emu_wrptr(sc, 0, ch->basereg, ch->buffer->buf_addr);
                emu_wrptr(sc, 0, ch->sizereg, 0); /* off */
                snd_mtxunlock(sc->lock);
                return ch;
diff --git a/sys/dev/sound/pci/emu10kx-pcm.c b/sys/dev/sound/pci/emu10kx-pcm.c
index c280b64892f6..a93d48ba71b1 100644
--- a/sys/dev/sound/pci/emu10kx-pcm.c
+++ b/sys/dev/sound/pci/emu10kx-pcm.c
@@ -773,7 +773,7 @@ emupchan_setblocksize(kobj_t obj __unused, void *c_devinfo, 
uint32_t blocksize)
                blocksize = ch->pcm->bufsz;
        snd_mtxlock(sc->lock);
        ch->blksz = blocksize;
-       emu_timer_set(sc->card, ch->timer, ch->blksz / 
sndbuf_getalign(ch->buffer));
+       emu_timer_set(sc->card, ch->timer, ch->blksz / ch->buffer->align);
        snd_mtxunlock(sc->lock);
        return (ch->blksz);
 }
@@ -795,7 +795,8 @@ emupchan_trigger(kobj_t obj __unused, void *c_devinfo, int 
go)
                else
                        emu_vroute(sc->card, &(sc->rt_mono), ch->master);
                emu_vwrite(sc->card, ch->master);
-               emu_timer_set(sc->card, ch->timer, ch->blksz / 
sndbuf_getalign(ch->buffer));
+               emu_timer_set(sc->card, ch->timer, ch->blksz /
+                   ch->buffer->align);
                emu_timer_enable(sc->card, ch->timer, 1);
        }
        /* PCM interrupt handler will handle PCMTRIG_STOP event */
@@ -878,7 +879,7 @@ emurchan_init(kobj_t obj __unused, void *devinfo, struct 
snd_dbuf *b, struct pcm
                return (NULL);
        else {
                ch->timer = emu_timer_create(sc->card);
-               emu_wrptr(sc->card, 0, ch->basereg, 
sndbuf_getbufaddr(ch->buffer));
+               emu_wrptr(sc->card, 0, ch->basereg, ch->buffer->buf_addr);
                emu_wrptr(sc->card, 0, ch->sizereg, 0); /* off */
                return (ch);
        }
@@ -930,7 +931,8 @@ emurchan_setblocksize(kobj_t obj __unused, void *c_devinfo, 
uint32_t blocksize)
         * (and use) timer interrupts. Otherwise channel will be marked dead.
         */
        if (ch->blksz < (ch->pcm->bufsz / 2)) {
-               emu_timer_set(sc->card, ch->timer, ch->blksz / 
sndbuf_getalign(ch->buffer));
+               emu_timer_set(sc->card, ch->timer, ch->blksz /
+                   ch->buffer->align);
                emu_timer_enable(sc->card, ch->timer, 1);
        } else {
                emu_timer_enable(sc->card, ch->timer, 0);
@@ -1059,7 +1061,7 @@ emufxrchan_init(kobj_t obj __unused, void *devinfo, 
struct snd_dbuf *b, struct p
        if (sndbuf_alloc(ch->buffer, emu_gettag(sc->card), 0, sc->bufsz) != 0)
                return (NULL);
        else {
-               emu_wrptr(sc->card, 0, ch->basereg, 
sndbuf_getbufaddr(ch->buffer));
+               emu_wrptr(sc->card, 0, ch->basereg, ch->buffer->buf_addr);
                emu_wrptr(sc->card, 0, ch->sizereg, 0); /* off */
                return (ch);
        }
diff --git a/sys/dev/sound/pci/es137x.c b/sys/dev/sound/pci/es137x.c
index 3c1bea09b5d1..eb546de81f65 100644
--- a/sys/dev/sound/pci/es137x.c
+++ b/sys/dev/sound/pci/es137x.c
@@ -508,21 +508,21 @@ eschan_init(kobj_t obj, void *devinfo, struct snd_dbuf *b,
                        es_wr(es, ES1370_REG_MEMPAGE,
                            ES1370_REG_DAC1_FRAMEADR >> 8, 1);
                        es_wr(es, ES1370_REG_DAC1_FRAMEADR & 0xff,
-                           sndbuf_getbufaddr(ch->buffer), 4);
+                           ch->buffer->buf_addr, 4);
                        es_wr(es, ES1370_REG_DAC1_FRAMECNT & 0xff,
                            (ch->bufsz >> 2) - 1, 4);
                } else {
                        es_wr(es, ES1370_REG_MEMPAGE,
                            ES1370_REG_DAC2_FRAMEADR >> 8, 1);
                        es_wr(es, ES1370_REG_DAC2_FRAMEADR & 0xff,
-                           sndbuf_getbufaddr(ch->buffer), 4);
+                           ch->buffer->buf_addr, 4);
                        es_wr(es, ES1370_REG_DAC2_FRAMECNT & 0xff,
                            (ch->bufsz >> 2) - 1, 4);
                }
        } else {
                es_wr(es, ES1370_REG_MEMPAGE, ES1370_REG_ADC_FRAMEADR >> 8, 1);
                es_wr(es, ES1370_REG_ADC_FRAMEADR & 0xff,
-                   sndbuf_getbufaddr(ch->buffer), 4);
+                   ch->buffer->buf_addr, 4);
                es_wr(es, ES1370_REG_ADC_FRAMECNT & 0xff,
                    (ch->bufsz >> 2) - 1, 4);
        }
@@ -637,8 +637,8 @@ eschan_setfragments(kobj_t obj, void *data, uint32_t blksz, 
uint32_t blkcnt)
 
        blksz &= ES_BLK_ALIGN;
 
-       if (blksz > (sndbuf_getmaxsize(ch->buffer) / ES_DMA_SEGS_MIN))
-               blksz = sndbuf_getmaxsize(ch->buffer) / ES_DMA_SEGS_MIN;
+       if (blksz > (ch->buffer->maxsize / ES_DMA_SEGS_MIN))
+               blksz = ch->buffer->maxsize / ES_DMA_SEGS_MIN;
        if (blksz < ES_BLK_MIN)
                blksz = ES_BLK_MIN;
        if (blkcnt > ES_DMA_SEGS_MAX)
@@ -646,7 +646,7 @@ eschan_setfragments(kobj_t obj, void *data, uint32_t blksz, 
uint32_t blkcnt)
        if (blkcnt < ES_DMA_SEGS_MIN)
                blkcnt = ES_DMA_SEGS_MIN;
 
-       while ((blksz * blkcnt) > sndbuf_getmaxsize(ch->buffer)) {
+       while ((blksz * blkcnt) > ch->buffer->maxsize) {
                if ((blkcnt >> 1) >= ES_DMA_SEGS_MIN)
                        blkcnt >>= 1;
                else if ((blksz >> 1) >= ES_BLK_MIN)
@@ -655,15 +655,15 @@ eschan_setfragments(kobj_t obj, void *data, uint32_t 
blksz, uint32_t blkcnt)
                        break;
        }
 
-       if ((sndbuf_getblksz(ch->buffer) != blksz ||
-           sndbuf_getblkcnt(ch->buffer) != blkcnt) &&
+       if ((ch->buffer->blksz != blksz ||
+           ch->buffer->blkcnt != blkcnt) &&
            sndbuf_resize(ch->buffer, blkcnt, blksz) != 0)
                device_printf(es->dev, "%s: failed blksz=%u blkcnt=%u\n",
                    __func__, blksz, blkcnt);
 
-       ch->bufsz = sndbuf_getsize(ch->buffer);
-       ch->blksz = sndbuf_getblksz(ch->buffer);
-       ch->blkcnt = sndbuf_getblkcnt(ch->buffer);
+       ch->bufsz = ch->buffer->bufsize;
+       ch->blksz = ch->buffer->blksz;
+       ch->blkcnt = ch->buffer->blkcnt;
 
        return (0);
 }
@@ -762,7 +762,7 @@ eschan_trigger(kobj_t obj, void *data, int go)
                return 0;
 
        ES_LOCK(es);
-       cnt = (ch->blksz / sndbuf_getalign(ch->buffer)) - 1;
+       cnt = (ch->blksz / ch->buffer->align) - 1;
        if (ch->fmt & AFMT_16BIT)
                b |= 0x02;
        if (AFMT_CHANNEL(ch->fmt) > 1)
diff --git a/sys/dev/sound/pci/fm801.c b/sys/dev/sound/pci/fm801.c
index 3537c7807ded..39d12f8505d1 100644
--- a/sys/dev/sound/pci/fm801.c
+++ b/sys/dev/sound/pci/fm801.c
@@ -440,7 +440,7 @@ fm801ch_trigger(kobj_t obj, void *data, int go)
 {
        struct fm801_chinfo *ch = data;
        struct fm801_info *fm801 = ch->parent;
-       u_int32_t baseaddr = sndbuf_getbufaddr(ch->buffer);
+       u_int32_t baseaddr = ch->buffer->buf_addr;
        u_int32_t k1;
 
        DPRINT("fm801ch_trigger go %d , ", go);
diff --git a/sys/dev/sound/pci/hda/hdaa.c b/sys/dev/sound/pci/hda/hdaa.c
index 5dbb5c4f4453..14231107e17a 100644
--- a/sys/dev/sound/pci/hda/hdaa.c
+++ b/sys/dev/sound/pci/hda/hdaa.c
@@ -2081,10 +2081,10 @@ hdaa_channel_setfragments(kobj_t obj, void *data,
 {
        struct hdaa_chan *ch = data;
 
-       blksz -= blksz % lcm(HDA_DMA_ALIGNMENT, sndbuf_getalign(ch->b));
+       blksz -= blksz % lcm(HDA_DMA_ALIGNMENT, ch->b->align);
 
-       if (blksz > (sndbuf_getmaxsize(ch->b) / HDA_BDL_MIN))
-               blksz = sndbuf_getmaxsize(ch->b) / HDA_BDL_MIN;
+       if (blksz > (ch->b->maxsize / HDA_BDL_MIN))
+               blksz = ch->b->maxsize / HDA_BDL_MIN;
        if (blksz < HDA_BLK_MIN)
                blksz = HDA_BLK_MIN;
        if (blkcnt > HDA_BDL_MAX)
@@ -2092,7 +2092,7 @@ hdaa_channel_setfragments(kobj_t obj, void *data,
        if (blkcnt < HDA_BDL_MIN)
                blkcnt = HDA_BDL_MIN;
 
-       while ((blksz * blkcnt) > sndbuf_getmaxsize(ch->b)) {
+       while ((blksz * blkcnt) > ch->b->maxsize) {
                if ((blkcnt >> 1) >= HDA_BDL_MIN)
                        blkcnt >>= 1;
                else if ((blksz >> 1) >= HDA_BLK_MIN)
@@ -2101,14 +2101,14 @@ hdaa_channel_setfragments(kobj_t obj, void *data,
                        break;
        }
 
-       if ((sndbuf_getblksz(ch->b) != blksz ||
-           sndbuf_getblkcnt(ch->b) != blkcnt) &&
+       if ((ch->b->blksz != blksz ||
+           ch->b->blkcnt != blkcnt) &&
            sndbuf_resize(ch->b, blkcnt, blksz) != 0)
                device_printf(ch->devinfo->dev, "%s: failed blksz=%u 
blkcnt=%u\n",
                    __func__, blksz, blkcnt);
 
-       ch->blksz = sndbuf_getblksz(ch->b);
-       ch->blkcnt = sndbuf_getblkcnt(ch->b);
+       ch->blksz = ch->b->blksz;
+       ch->blkcnt = ch->b->blkcnt;
 
        return (0);
 }
@@ -2169,7 +2169,7 @@ hdaa_channel_start(struct hdaa_chan *ch)
            ch->dir == PCMDIR_PLAY ? 1 : 0, ch->sid);
        HDAC_STREAM_START(device_get_parent(devinfo->dev), devinfo->dev,
            ch->dir == PCMDIR_PLAY ? 1 : 0, ch->sid,
-           sndbuf_getbufaddr(ch->b), ch->blksz, ch->blkcnt);
+           ch->b->buf_addr, ch->blksz, ch->blkcnt);
        ch->flags |= HDAA_CHN_RUNNING;
        return (0);
 }
diff --git a/sys/dev/sound/pci/hdsp-pcm.c b/sys/dev/sound/pci/hdsp-pcm.c
index 5ac571e64fde..bc11199f15e8 100644
--- a/sys/dev/sound/pci/hdsp-pcm.c
+++ b/sys/dev/sound/pci/hdsp-pcm.c
@@ -971,7 +971,7 @@ hdspchan_setblocksize(kobj_t obj, void *data, uint32_t 
blocksize)
                hdsp_write_4(sc, HDSP_FREQ_REG, hdsp_freq_reg_value(sc->speed));
 end:
 
-       return (sndbuf_getblksz(ch->buffer));
+       return (ch->buffer->blksz);
 }
 
 static uint32_t hdsp_bkp_fmt[] = {
diff --git a/sys/dev/sound/pci/hdspe-pcm.c b/sys/dev/sound/pci/hdspe-pcm.c
index 09bbbe22dacf..1c0a92e45b7a 100644
--- a/sys/dev/sound/pci/hdspe-pcm.c
+++ b/sys/dev/sound/pci/hdspe-pcm.c
@@ -962,7 +962,7 @@ hdspechan_setblocksize(kobj_t obj, void *data, uint32_t 
blocksize)
            (sc->period * 4));
 end:
 
-       return (sndbuf_getblksz(ch->buffer));
+       return (ch->buffer->blksz);
 }
 
 static uint32_t hdspe_bkp_fmt[] = {
diff --git a/sys/dev/sound/pci/ich.c b/sys/dev/sound/pci/ich.c
index 500d6d95daac..53f4db3332a8 100644
--- a/sys/dev/sound/pci/ich.c
+++ b/sys/dev/sound/pci/ich.c
@@ -301,15 +301,15 @@ ich_filldtbl(struct sc_chinfo *ch)
        uint32_t base;
        int i;
 
-       base = sndbuf_getbufaddr(ch->buffer);
-       if ((ch->blksz * ch->blkcnt) > sndbuf_getmaxsize(ch->buffer))
-               ch->blksz = sndbuf_getmaxsize(ch->buffer) / ch->blkcnt;
-       if ((sndbuf_getblksz(ch->buffer) != ch->blksz ||
-           sndbuf_getblkcnt(ch->buffer) != ch->blkcnt) &&
+       base = ch->buffer->buf_addr;
+       if ((ch->blksz * ch->blkcnt) > ch->buffer->maxsize)
+               ch->blksz = ch->buffer->maxsize / ch->blkcnt;
+       if ((ch->buffer->blksz != ch->blksz ||
+           ch->buffer->blkcnt != ch->blkcnt) &&
            sndbuf_resize(ch->buffer, ch->blkcnt, ch->blksz) != 0)
                device_printf(sc->dev, "%s: failed blksz=%u blkcnt=%u\n",
                    __func__, ch->blksz, ch->blkcnt);
-       ch->blksz = sndbuf_getblksz(ch->buffer);
+       ch->blksz = ch->buffer->blksz;
 
        for (i = 0; i < ICH_DTBL_LENGTH; i++) {
                ch->dtbl[i].buffer = base + (ch->blksz * (i % ch->blkcnt));
@@ -491,7 +491,7 @@ ichchan_setblocksize(kobj_t obj, void *data, uint32_t 
blocksize)
        );
 
        if (sc->flags & ICH_HIGH_LATENCY)
-               blocksize = sndbuf_getmaxsize(ch->buffer) / ch->blkcnt;
+               blocksize = ch->buffer->maxsize / ch->blkcnt;
 
        if (blocksize < ICH_MIN_BLKSZ)
                blocksize = ICH_MIN_BLKSZ;
@@ -734,7 +734,7 @@ ich_calibrate(void *arg)
        ch->blkcnt = 2;
        sc->flags |= ICH_CALIBRATE_DONE;
        ICH_UNLOCK(sc);
-       ichchan_setblocksize(0, ch, sndbuf_getmaxsize(ch->buffer) >> 1);
+       ichchan_setblocksize(0, ch, ch->buffer->maxsize >> 1);
        ICH_LOCK(sc);
        sc->flags &= ~ICH_CALIBRATE_DONE;
 
diff --git a/sys/dev/sound/pci/maestro3.c b/sys/dev/sound/pci/maestro3.c
index 2d102fcd6dbe..ee39f5f3c90d 100644
--- a/sys/dev/sound/pci/maestro3.c
+++ b/sys/dev/sound/pci/maestro3.c
@@ -444,10 +444,10 @@ m3_pchan_init(kobj_t kobj, void *devinfo, struct snd_dbuf 
*b, struct pcm_channel
                return (NULL);
        }
        M3_LOCK(sc);
-       ch->bufsize = sndbuf_getsize(ch->buffer);
+       ch->bufsize = ch->buffer->bufsize;
 
        /* host dma buffer pointers */
-       bus_addr = sndbuf_getbufaddr(ch->buffer);
+       bus_addr = ch->buffer->buf_addr;
        if (bus_addr & 3) {
                device_printf(sc->dev, "m3_pchan_init unaligned bus_addr\n");
                bus_addr = (bus_addr + 4) & ~3;
@@ -595,7 +595,7 @@ m3_pchan_setblocksize(kobj_t kobj, void *chdata, u_int32_t 
blocksize)
        M3_DEBUG(CHANGE, ("m3_pchan_setblocksize(dac=%d, blocksize=%d)\n",
                          ch->dac_idx, blocksize));
 
-       return (sndbuf_getblksz(ch->buffer));
+       return (ch->buffer->blksz);
 }
 
 static int
@@ -709,7 +709,7 @@ m3_pchan_getptr_internal(struct sc_pchinfo *ch)
        struct sc_info *sc = ch->parent;
        u_int32_t hi, lo, bus_base, bus_crnt;
 
-       bus_base = sndbuf_getbufaddr(ch->buffer);
+       bus_base = ch->buffer->buf_addr;
        hi = m3_rd_assp_data(sc, ch->dac_data + CDATA_HOST_SRC_CURRENTH);
         lo = m3_rd_assp_data(sc, ch->dac_data + CDATA_HOST_SRC_CURRENTL);
         bus_crnt = lo | (hi << 16);
@@ -823,10 +823,10 @@ m3_rchan_init(kobj_t kobj, void *devinfo, struct snd_dbuf 
*b, struct pcm_channel
                return (NULL);
        }
        M3_LOCK(sc);
-       ch->bufsize = sndbuf_getsize(ch->buffer);
+       ch->bufsize = ch->buffer->bufsize;
 
        /* host dma buffer pointers */
-       bus_addr = sndbuf_getbufaddr(ch->buffer);
+       bus_addr = ch->buffer->buf_addr;
        if (bus_addr & 3) {
                device_printf(sc->dev, "m3_rchan_init unaligned bus_addr\n");
                bus_addr = (bus_addr + 4) & ~3;
@@ -968,7 +968,7 @@ m3_rchan_setblocksize(kobj_t kobj, void *chdata, u_int32_t 
blocksize)
        M3_DEBUG(CHANGE, ("m3_rchan_setblocksize(adc=%d, blocksize=%d)\n",
                          ch->adc_idx, blocksize));
 
-       return (sndbuf_getblksz(ch->buffer));
+       return (ch->buffer->blksz);
 }
 
 static int
@@ -1061,7 +1061,7 @@ m3_rchan_getptr_internal(struct sc_rchinfo *ch)
        struct sc_info *sc = ch->parent;
        u_int32_t hi, lo, bus_base, bus_crnt;
 
-       bus_base = sndbuf_getbufaddr(ch->buffer);
+       bus_base = ch->buffer->buf_addr;
        hi = m3_rd_assp_data(sc, ch->adc_data + CDATA_HOST_SRC_CURRENTH);
         lo = m3_rd_assp_data(sc, ch->adc_data + CDATA_HOST_SRC_CURRENTL);
         bus_crnt = lo | (hi << 16);
@@ -1162,7 +1162,7 @@ m3_handle_channel_intr:
                        pch->ptr = m3_pchan_getptr_internal(pch);
                        delta = pch->bufsize + pch->ptr - pch->prevptr;
                        delta %= pch->bufsize;
-                       if (delta < sndbuf_getblksz(pch->buffer))
+                       if (delta < pch->buffer->blksz)
                                continue;
                        pch->prevptr = pch->ptr;
                        M3_UNLOCK(sc);
@@ -1176,7 +1176,7 @@ m3_handle_channel_intr:
                        rch->ptr = m3_rchan_getptr_internal(rch);
                        delta = rch->bufsize + rch->ptr - rch->prevptr;
                        delta %= rch->bufsize;
-                       if (delta < sndbuf_getblksz(rch->buffer))
+                       if (delta < rch->buffer->blksz)
                                continue;
                        rch->prevptr = rch->ptr;
                        M3_UNLOCK(sc);
diff --git a/sys/dev/sound/pci/neomagic.c b/sys/dev/sound/pci/neomagic.c
index d7824c990a52..1fee943d9364 100644
--- a/sys/dev/sound/pci/neomagic.c
+++ b/sys/dev/sound/pci/neomagic.c
@@ -362,7 +362,7 @@ nmchan_init(kobj_t obj, void *devinfo, struct snd_dbuf *b, 
struct pcm_channel *c
        sndbuf_setup(ch->buffer, (u_int8_t *)rman_get_virtual(sc->buf) + 
chnbuf, NM_BUFFSIZE);
        if (bootverbose)
                device_printf(sc->dev, "%s buf %p\n", (dir == PCMDIR_PLAY)?
-                             "play" : "rec", sndbuf_getbuf(ch->buffer));
+                             "play" : "rec", ch->buffer->buf);
        ch->parent = sc;
        ch->channel = c;
        ch->dir = dir;
diff --git a/sys/dev/sound/pci/solo.c b/sys/dev/sound/pci/solo.c
index 90dd2e26ad41..8229b0cffdae 100644
--- a/sys/dev/sound/pci/solo.c
+++ b/sys/dev/sound/pci/solo.c
@@ -584,7 +584,8 @@ esschan_trigger(kobj_t obj, void *data, int go)
        ess_lock(sc);
        switch (go) {
        case PCMTRIG_START:
-               ess_dmasetup(sc, ch->hwch, sndbuf_getbufaddr(ch->buffer), 
sndbuf_getsize(ch->buffer), ch->dir);
+               ess_dmasetup(sc, ch->hwch, ch->buffer->buf_addr,
+                   ch->buffer->bufsize, ch->dir);
                ess_dmatrigger(sc, ch->hwch, 1);
                ess_start(ch);
                break;
diff --git a/sys/dev/sound/pci/t4dwave.c b/sys/dev/sound/pci/t4dwave.c
index 07b9e1004573..874d1c7a2e2a 100644
--- a/sys/dev/sound/pci/t4dwave.c
+++ b/sys/dev/sound/pci/t4dwave.c
@@ -555,9 +555,9 @@ trpchan_trigger(kobj_t obj, void *data, int go)
                ch->fms = 0;
                ch->ec = 0;
                ch->alpha = 0;
-               ch->lba = sndbuf_getbufaddr(ch->buffer);
+               ch->lba = ch->buffer->buf_addr;
                ch->cso = 0;
-               ch->eso = (sndbuf_getsize(ch->buffer) / 
sndbuf_getalign(ch->buffer)) - 1;
+               ch->eso = (ch->buffer->bufsize / ch->buffer->align) - 1;
                ch->rvol = ch->cvol = 0x7f;
                ch->gvsel = 0;
                ch->pan = 0;
@@ -581,7 +581,7 @@ trpchan_getptr(kobj_t obj, void *data)
        struct tr_chinfo *ch = data;
 
        tr_rdch(ch);
-       return ch->cso * sndbuf_getalign(ch->buffer);
+       return ch->cso * ch->buffer->align;
 }
 
 static struct pcmchan_caps *
@@ -680,7 +680,7 @@ trrchan_trigger(kobj_t obj, void *data, int go)
                i = tr_rd(tr, TR_REG_DMAR11, 1) & 0x03;
                tr_wr(tr, TR_REG_DMAR11, i | 0x54, 1);
                /* set up base address */
-               tr_wr(tr, TR_REG_DMAR0, sndbuf_getbufaddr(ch->buffer), 4);
+               tr_wr(tr, TR_REG_DMAR0, ch->buffer->buf_addr, 4);
                /* set up buffer size */
                i = tr_rd(tr, TR_REG_DMAR4, 4) & ~0x00ffffff;
                tr_wr(tr, TR_REG_DMAR4, i | (sndbuf_runsz(ch->buffer) - 1), 4);
@@ -703,7 +703,7 @@ trrchan_getptr(kobj_t obj, void *data)
        struct tr_info *tr = ch->parent;
 
        /* return current byte offset of channel */
-       return tr_rd(tr, TR_REG_DMAR0, 4) - sndbuf_getbufaddr(ch->buffer);
+       return tr_rd(tr, TR_REG_DMAR0, 4) - ch->buffer->buf_addr;
 }
 
 static struct pcmchan_caps *
diff --git a/sys/dev/sound/pci/via8233.c b/sys/dev/sound/pci/via8233.c
index 243353805b94..47caa7ea4459 100644
--- a/sys/dev/sound/pci/via8233.c
+++ b/sys/dev/sound/pci/via8233.c
@@ -385,7 +385,7 @@ via_buildsgdt(struct via_chinfo *ch)
        uint32_t phys_addr, flag;
        int i;
 
-       phys_addr = sndbuf_getbufaddr(ch->buffer);
+       phys_addr = ch->buffer->buf_addr;
 
        for (i = 0; i < ch->blkcnt; i++) {
                flag = (i == ch->blkcnt - 1) ? VIA_DMAOP_EOL : VIA_DMAOP_FLAG;
@@ -568,8 +568,8 @@ via8233chan_setfragments(kobj_t obj, void *data,
 
        blksz &= VIA_BLK_ALIGN;
 
-       if (blksz > (sndbuf_getmaxsize(ch->buffer) / VIA_SEGS_MIN))
-               blksz = sndbuf_getmaxsize(ch->buffer) / VIA_SEGS_MIN;
+       if (blksz > (ch->buffer->maxsize / VIA_SEGS_MIN))
+               blksz = ch->buffer->maxsize / VIA_SEGS_MIN;
        if (blksz < VIA_BLK_MIN)
                blksz = VIA_BLK_MIN;
        if (blkcnt > VIA_SEGS_MAX)
@@ -577,7 +577,7 @@ via8233chan_setfragments(kobj_t obj, void *data,
        if (blkcnt < VIA_SEGS_MIN)
                blkcnt = VIA_SEGS_MIN;
 
*** 1195 LINES SKIPPED ***

Reply via email to