The branch main has been updated by christos:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=84976625da387a266f01b0a566aab447426609f7

commit 84976625da387a266f01b0a566aab447426609f7
Author:     Christos Margiolis <[email protected]>
AuthorDate: 2026-01-02 16:55:44 +0000
Commit:     Christos Margiolis <[email protected]>
CommitDate: 2026-01-02 16:58:04 +0000

    sound: Retire pcm_feeder->desc_static
    
    Not sure what the value of this was.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Reviewed by:    markj
    Differential Revision:  https://reviews.freebsd.org/D54103
---
 sys/dev/sound/pcm/feeder.c        |  3 +--
 sys/dev/sound/pcm/feeder.h        |  2 +-
 sys/dev/sound/pcm/feeder_chain.c  |  4 ++--
 sys/dev/sound/pcm/feeder_eq.c     | 10 +++++-----
 sys/dev/sound/pcm/feeder_format.c | 14 +++++++-------
 sys/dev/sound/pcm/feeder_matrix.c |  9 ++++-----
 sys/dev/sound/pcm/feeder_mixer.c  | 10 +++++-----
 sys/dev/sound/pcm/feeder_rate.c   |  8 ++++----
 sys/dev/sound/pcm/feeder_volume.c | 14 +++++++-------
 sys/dev/sound/pcm/sndstat.c       | 36 ++++++++++++++++++------------------
 10 files changed, 54 insertions(+), 56 deletions(-)

diff --git a/sys/dev/sound/pcm/feeder.c b/sys/dev/sound/pcm/feeder.c
index fa4e4e16a133..2a7f54e5d30f 100644
--- a/sys/dev/sound/pcm/feeder.c
+++ b/sys/dev/sound/pcm/feeder.c
@@ -75,9 +75,8 @@ feeder_create(struct feeder_class *fc, struct pcm_feederdesc 
*desc)
                return NULL;
 
        f->class = fc;
-       f->desc = &(f->desc_static);
        if (desc != NULL)
-               *(f->desc) = *desc;
+               f->desc = *desc;
 
        err = FEEDER_INIT(f);
        if (err) {
diff --git a/sys/dev/sound/pcm/feeder.h b/sys/dev/sound/pcm/feeder.h
index f1c96d86fda0..ed4ebc91fca7 100644
--- a/sys/dev/sound/pcm/feeder.h
+++ b/sys/dev/sound/pcm/feeder.h
@@ -51,7 +51,7 @@ struct feeder_class {
 struct pcm_feeder {
        KOBJ_FIELDS;
        int align;
-       struct pcm_feederdesc *desc, desc_static;
+       struct pcm_feederdesc desc;
        void *data;
        struct feeder_class *class;
        struct pcm_feeder *source, *parent;
diff --git a/sys/dev/sound/pcm/feeder_chain.c b/sys/dev/sound/pcm/feeder_chain.c
index 32dd4ca14faf..4ec50d810253 100644
--- a/sys/dev/sound/pcm/feeder_chain.c
+++ b/sys/dev/sound/pcm/feeder_chain.c
@@ -473,8 +473,8 @@ feeder_build_root(struct pcm_channel *c, struct 
feeder_chain_desc *cdesc)
 
        c->feederflags |= 1 << FEEDER_ROOT;
 
-       c->feeder->desc->in = cdesc->current.afmt;
-       c->feeder->desc->out = cdesc->current.afmt;
+       c->feeder->desc.in = cdesc->current.afmt;
+       c->feeder->desc.out = cdesc->current.afmt;
 
        return (0);
 }
diff --git a/sys/dev/sound/pcm/feeder_eq.c b/sys/dev/sound/pcm/feeder_eq.c
index 3838328fb0bb..4ab7334715d5 100644
--- a/sys/dev/sound/pcm/feeder_eq.c
+++ b/sys/dev/sound/pcm/feeder_eq.c
@@ -275,16 +275,16 @@ feed_eq_init(struct pcm_feeder *f)
 {
        struct feed_eq_info *info;
 
-       if (f->desc->in != f->desc->out)
+       if (f->desc.in != f->desc.out)
                return (EINVAL);
 
        info = malloc(sizeof(*info), M_DEVBUF, M_NOWAIT | M_ZERO);
        if (info == NULL)
                return (ENOMEM);
 
-       info->fmt = AFMT_ENCODING(f->desc->in);
-       info->channels = AFMT_CHANNEL(f->desc->in);
-       info->align = info->channels * AFMT_BPS(f->desc->in);
+       info->fmt = AFMT_ENCODING(f->desc.in);
+       info->channels = AFMT_CHANNEL(f->desc.in);
+       info->align = info->channels * AFMT_BPS(f->desc.in);
 
        info->rate = FEEDEQ_RATE_MIN;
        info->treble.gain = FEEDEQ_L2GAIN(50);
@@ -309,7 +309,7 @@ feed_eq_set(struct pcm_feeder *f, int what, int value)
                if (value < SND_CHN_MIN || value > SND_CHN_MAX)
                        return (EINVAL);
                info->channels = (uint32_t)value;
-               info->align = info->channels * AFMT_BPS(f->desc->in);
+               info->align = info->channels * AFMT_BPS(f->desc.in);
                feed_eq_reset(info);
                break;
        case FEEDEQ_RATE:
diff --git a/sys/dev/sound/pcm/feeder_format.c 
b/sys/dev/sound/pcm/feeder_format.c
index d2c4d7618ab4..25103b71d135 100644
--- a/sys/dev/sound/pcm/feeder_format.c
+++ b/sys/dev/sound/pcm/feeder_format.c
@@ -61,23 +61,23 @@ feed_format_init(struct pcm_feeder *f)
 {
        struct feed_format_info *info;
 
-       if (f->desc->in == f->desc->out ||
-           AFMT_CHANNEL(f->desc->in) != AFMT_CHANNEL(f->desc->out))
+       if (f->desc.in == f->desc.out ||
+           AFMT_CHANNEL(f->desc.in) != AFMT_CHANNEL(f->desc.out))
                return (EINVAL);
 
        info = malloc(sizeof(*info), M_DEVBUF, M_NOWAIT | M_ZERO);
        if (info == NULL)
                return (ENOMEM);
 
-       info->channels = AFMT_CHANNEL(f->desc->in);
+       info->channels = AFMT_CHANNEL(f->desc.in);
 
-       info->ibps = AFMT_BPS(f->desc->in);
+       info->ibps = AFMT_BPS(f->desc.in);
        info->ialign = info->ibps * info->channels;
-       info->rdfmt = AFMT_ENCODING(f->desc->in);
+       info->rdfmt = AFMT_ENCODING(f->desc.in);
 
-       info->obps = AFMT_BPS(f->desc->out);
+       info->obps = AFMT_BPS(f->desc.out);
        info->oalign = info->obps * info->channels;
-       info->wrfmt = AFMT_ENCODING(f->desc->out);
+       info->wrfmt = AFMT_ENCODING(f->desc.out);
 
        f->data = info;
 
diff --git a/sys/dev/sound/pcm/feeder_matrix.c 
b/sys/dev/sound/pcm/feeder_matrix.c
index 2c7a3e04690d..198fe86d994f 100644
--- a/sys/dev/sound/pcm/feeder_matrix.c
+++ b/sys/dev/sound/pcm/feeder_matrix.c
@@ -283,15 +283,15 @@ feed_matrix_init(struct pcm_feeder *f)
        struct pcmchan_matrix *m_in, *m_out;
        int ret;
 
-       if (AFMT_ENCODING(f->desc->in) != AFMT_ENCODING(f->desc->out))
+       if (AFMT_ENCODING(f->desc.in) != AFMT_ENCODING(f->desc.out))
                return (EINVAL);
 
        info = malloc(sizeof(*info), M_DEVBUF, M_NOWAIT | M_ZERO);
        if (info == NULL)
                return (ENOMEM);
 
-       info->in = f->desc->in;
-       info->out = f->desc->out;
+       info->in = f->desc.in;
+       info->out = f->desc.out;
        info->fmt = AFMT_ENCODING(info->in);
        info->bps = AFMT_BPS(info->in);
        info->ialign = AFMT_ALIGN(info->in);
@@ -413,8 +413,7 @@ feeder_matrix_setup(struct pcm_feeder *f, struct 
pcmchan_matrix *m_in,
     struct pcmchan_matrix *m_out)
 {
 
-       if (f == NULL || f->desc == NULL || f->class->type != FEEDER_MATRIX ||
-           f->data == NULL)
+       if (f == NULL || f->class->type != FEEDER_MATRIX || f->data == NULL)
                return (EINVAL);
 
        return (feed_matrix_setup(f->data, m_in, m_out));
diff --git a/sys/dev/sound/pcm/feeder_mixer.c b/sys/dev/sound/pcm/feeder_mixer.c
index 10de42ba727a..74ab633bf3c7 100644
--- a/sys/dev/sound/pcm/feeder_mixer.c
+++ b/sys/dev/sound/pcm/feeder_mixer.c
@@ -78,16 +78,16 @@ feed_mixer_init(struct pcm_feeder *f)
 {
        struct feed_mixer_info *info;
 
-       if (f->desc->in != f->desc->out)
+       if (f->desc.in != f->desc.out)
                return (EINVAL);
 
        info = malloc(sizeof(*info), M_DEVBUF, M_NOWAIT | M_ZERO);
        if (info == NULL)
                return (ENOMEM);
 
-       info->format = AFMT_ENCODING(f->desc->in);
-       info->channels = AFMT_CHANNEL(f->desc->in);
-       info->bps = AFMT_BPS(f->desc->in);
+       info->format = AFMT_ENCODING(f->desc.in);
+       info->channels = AFMT_CHANNEL(f->desc.in);
+       info->bps = AFMT_BPS(f->desc.in);
 
        f->data = info;
 
@@ -321,7 +321,7 @@ feed_mixer_feed(struct pcm_feeder *f, struct pcm_channel 
*c, uint8_t *b,
                                        if (mcnt != 0) {
                                                memset(b + rcnt,
                                                    sndbuf_zerodata(
-                                                   f->desc->out), mcnt);
+                                                   f->desc.out), mcnt);
                                                mcnt = 0;
                                        }
                                        switch (info->format) {
diff --git a/sys/dev/sound/pcm/feeder_rate.c b/sys/dev/sound/pcm/feeder_rate.c
index c2c232a97177..7fe8ec856a88 100644
--- a/sys/dev/sound/pcm/feeder_rate.c
+++ b/sys/dev/sound/pcm/feeder_rate.c
@@ -1109,7 +1109,7 @@ z_resampler_setup(struct pcm_feeder *f)
        if (!(Z_FACTOR_SAFE(info->z_gx) && Z_FACTOR_SAFE(info->z_gy)))
                return (EINVAL);
 
-       format = f->desc->in;
+       format = f->desc.in;
        adaptive = 0;
        z_scale = 0;
 
@@ -1344,7 +1344,7 @@ z_setup_adaptive_sinc:
        /*
         * Zero out head of buffer to avoid pops and clicks.
         */
-       memset(info->z_delay, sndbuf_zerodata(f->desc->out),
+       memset(info->z_delay, sndbuf_zerodata(f->desc.out),
            info->z_pos * align);
 
 #ifdef Z_DIAGNOSTIC
@@ -1508,7 +1508,7 @@ z_resampler_init(struct pcm_feeder *f)
        struct z_info *info;
        int ret;
 
-       if (f->desc->in != f->desc->out)
+       if (f->desc.in != f->desc.out)
                return (EINVAL);
 
        info = malloc(sizeof(*info), M_DEVBUF, M_NOWAIT | M_ZERO);
@@ -1518,7 +1518,7 @@ z_resampler_init(struct pcm_feeder *f)
        info->rsrc = Z_RATE_DEFAULT;
        info->rdst = Z_RATE_DEFAULT;
        info->quality = feeder_rate_quality;
-       info->channels = AFMT_CHANNEL(f->desc->in);
+       info->channels = AFMT_CHANNEL(f->desc.in);
 
        f->data = info;
 
diff --git a/sys/dev/sound/pcm/feeder_volume.c 
b/sys/dev/sound/pcm/feeder_volume.c
index 101cc7ba003b..f7c93ca716e6 100644
--- a/sys/dev/sound/pcm/feeder_volume.c
+++ b/sys/dev/sound/pcm/feeder_volume.c
@@ -151,20 +151,20 @@ feed_volume_init(struct pcm_feeder *f)
        uint32_t i;
        int ret;
 
-       if (f->desc->in != f->desc->out ||
-           AFMT_CHANNEL(f->desc->in) > SND_CHN_MAX)
+       if (f->desc.in != f->desc.out ||
+           AFMT_CHANNEL(f->desc.in) > SND_CHN_MAX)
                return (EINVAL);
 
        for (i = 0; i < FEEDVOLUME_TAB_SIZE; i++) {
-               if (AFMT_ENCODING(f->desc->in) ==
+               if (AFMT_ENCODING(f->desc.in) ==
                    feed_volume_info_tab[i].format) {
                        info = malloc(sizeof(*info), M_DEVBUF,
                            M_NOWAIT | M_ZERO);
                        if (info == NULL)
                                return (ENOMEM);
 
-                       info->bps = AFMT_BPS(f->desc->in);
-                       info->channels = AFMT_CHANNEL(f->desc->in);
+                       info->bps = AFMT_BPS(f->desc.in);
+                       info->channels = AFMT_CHANNEL(f->desc.in);
                        info->apply = feed_volume_info_tab[i].apply;
                        info->volume_class = SND_VOL_C_PCM;
                        info->state = FEEDVOLUME_ENABLE;
@@ -332,8 +332,8 @@ feeder_volume_apply_matrix(struct pcm_feeder *f, struct 
pcmchan_matrix *m)
        struct feed_volume_info *info;
        uint32_t i;
 
-       if (f == NULL || f->desc == NULL || f->class->type != FEEDER_VOLUME ||
-           f->data == NULL || m == NULL || m->channels < SND_CHN_MIN ||
+       if (f == NULL || f->class->type != FEEDER_VOLUME || f->data == NULL ||
+           m == NULL || m->channels < SND_CHN_MIN ||
            m->channels > SND_CHN_MAX)
                return (EINVAL);
 
diff --git a/sys/dev/sound/pcm/sndstat.c b/sys/dev/sound/pcm/sndstat.c
index a7c53ac85eb8..8f414e07757d 100644
--- a/sys/dev/sound/pcm/sndstat.c
+++ b/sys/dev/sound/pcm/sndstat.c
@@ -534,24 +534,24 @@ sndstat_build_sound4_nvlist(struct snddev_info *d, 
nvlist_t **dip)
                while (f != NULL) {
                        sbuf_printf(&sb, "%s", f->class->name);
                        if (f->class->type == FEEDER_FORMAT) {
-                               snd_afmt2str(f->desc->in, buf, sizeof(buf));
+                               snd_afmt2str(f->desc.in, buf, sizeof(buf));
                                sbuf_printf(&sb, "(%s -> ", buf);
-                               snd_afmt2str(f->desc->out, buf, sizeof(buf));
+                               snd_afmt2str(f->desc.out, buf, sizeof(buf));
                                sbuf_printf(&sb, "%s)", buf);
                        } else if (f->class->type == FEEDER_MATRIX) {
                                sbuf_printf(&sb, "(%d.%dch -> %d.%dch)",
-                                   AFMT_CHANNEL(f->desc->in) -
-                                   AFMT_EXTCHANNEL(f->desc->in),
-                                   AFMT_EXTCHANNEL(f->desc->in),
-                                   AFMT_CHANNEL(f->desc->out) -
-                                   AFMT_EXTCHANNEL(f->desc->out),
-                                   AFMT_EXTCHANNEL(f->desc->out));
+                                   AFMT_CHANNEL(f->desc.in) -
+                                   AFMT_EXTCHANNEL(f->desc.in),
+                                   AFMT_EXTCHANNEL(f->desc.in),
+                                   AFMT_CHANNEL(f->desc.out) -
+                                   AFMT_EXTCHANNEL(f->desc.out),
+                                   AFMT_EXTCHANNEL(f->desc.out));
                        } else if (f->class->type == FEEDER_RATE) {
                                sbuf_printf(&sb, "(%d -> %d)",
                                    FEEDER_GET(f, FEEDRATE_SRC),
                                    FEEDER_GET(f, FEEDRATE_DST));
                        } else {
-                               snd_afmt2str(f->desc->out, buf, sizeof(buf));
+                               snd_afmt2str(f->desc.out, buf, sizeof(buf));
                                sbuf_printf(&sb, "(%s)", buf);
                        }
                        sbuf_printf(&sb, " -> ");
@@ -1330,25 +1330,25 @@ sndstat_prepare_pcm(struct sbuf *s, device_t dev, int 
verbose)
                        sbuf_printf(s, "%s", f->class->name);
                        if (f->class->type == FEEDER_FORMAT) {
                                sbuf_printf(s, "(0x%08x -> 0x%08x)",
-                                   f->desc->in, f->desc->out);
+                                   f->desc.in, f->desc.out);
                        } else if (f->class->type == FEEDER_MATRIX) {
                                sbuf_printf(s, "(%d.%d -> %d.%d)",
-                                   AFMT_CHANNEL(f->desc->in) -
-                                   AFMT_EXTCHANNEL(f->desc->in),
-                                   AFMT_EXTCHANNEL(f->desc->in),
-                                   AFMT_CHANNEL(f->desc->out) -
-                                   AFMT_EXTCHANNEL(f->desc->out),
-                                   AFMT_EXTCHANNEL(f->desc->out));
+                                   AFMT_CHANNEL(f->desc.in) -
+                                   AFMT_EXTCHANNEL(f->desc.in),
+                                   AFMT_EXTCHANNEL(f->desc.in),
+                                   AFMT_CHANNEL(f->desc.out) -
+                                   AFMT_EXTCHANNEL(f->desc.out),
+                                   AFMT_EXTCHANNEL(f->desc.out));
                        } else if (f->class->type == FEEDER_RATE) {
                                sbuf_printf(s,
                                    "(0x%08x q:%d %d -> %d)",
-                                   f->desc->out,
+                                   f->desc.out,
                                    FEEDER_GET(f, FEEDRATE_QUALITY),
                                    FEEDER_GET(f, FEEDRATE_SRC),
                                    FEEDER_GET(f, FEEDRATE_DST));
                        } else {
                                sbuf_printf(s, "(0x%08x)",
-                                   f->desc->out);
+                                   f->desc.out);
                        }
                        sbuf_printf(s, " -> ");
                        f = f->parent;

Reply via email to