From nobody Tue Nov 11 12:08:13 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4d5QKT69Mzz6GLDj; Tue, 11 Nov 2025 12:08:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4d5QKT4c3Mz3bf7; Tue, 11 Nov 2025 12:08:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762862893; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gcTovBEp0b2tsYonyieNe9AAUEDDSFK1bbex1j4LT60=; b=jX/uvcw5+G2mO7ihV3u8bsKWi9WFDomf3GHDvWlTvokKHLV5Ree5P/rCoZws5Oy0kref9Y 7JrqXTyPCqIjYxjmRaLAFZmxfB7kme4FDW5jQSI7xM+zJnW1jGyQpwcGpkkpg68PzQ8A/R GaJomrYYA5BD5tpfRNRjNhserIp7D00hCI0awyqo2qmwa82P26n9ezaS2BTKS5Z08mHpus tpeArgChCRy3y2Y6sXraWXanXhDMuyxyZCuMcKGnk4AC/I4bViTWpuhOwVS8dnxCr/VN2c fzkBM2vMwW7T6OjNDNCJMDpckiBd9R1W56gBweEempEuWLcG8hia+hzKgGeH1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762862893; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gcTovBEp0b2tsYonyieNe9AAUEDDSFK1bbex1j4LT60=; b=FsnWbdEc9BozDVgOoEHlY5AipxjpquKBZSdol4xEBex+pAptMUoQTUNGy2i0x0RWaUNj6u 1kLon6BP4OypX77uAkA5dn9oz2sOJZ44TpCwu/IYRxOWJWJnaPOLOffLrPHvfpIZk8zfev HNdOJ2olFrtVC3iX+7oqf+5GFUI/J/qf21AmcPWF5PJ6fbtNlHVxCAlQw28XiPJ81BhlL1 WEBFx/bThWvc9H3bzqJ9OGJMjmWMeRH/PZi+p77Jj6Vwxtr1EIktGdfSpc4Ebjo0G3h57n CId6CI+PU2DcHegJD511Lu/UDmzsRRAKHl2sesdAwR5ytIDBFi/hxy86w+sW2g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1762862893; a=rsa-sha256; cv=none; b=ldZYj92DmscYVRqybFyJ4tEg2jKERtHwGN69n9nu7pt6GTPkxbUswoiUSqcmJ58GF8xDl/ TWvZu0tXNVepULFXjYbHe92Ycs+lSQCBAULumhFIJcSjCVA+y9cJ7bvyQhHm0LYYqBKPg8 y3ICm/eooH5y/Jvvj7dodELNdWRrP97nPSI9O/H/S5OWEhhgR4CTPBjg/LBF1kBQ/JVHB9 fSg7rmiYTeE8mG+LzlW2PINL+BarJH+2SEuSUFL+Liq9Yc0WgGwny5Oklzec4mhH8y4T+W aLiIlF0bmGX70crICaGlBVsReEVVM/5EvE+nMpg/QWZUtRXabrbXsku+ZxRZsA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4d5QKT440qz13pR; Tue, 11 Nov 2025 12:08:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5ABC8DVm035210; Tue, 11 Nov 2025 12:08:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5ABC8D4l035207; Tue, 11 Nov 2025 12:08:13 GMT (envelope-from git) Date: Tue, 11 Nov 2025 12:08:13 GMT Message-Id: <202511111208.5ABC8D4l035207@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Christos Margiolis Subject: git: 7d33c3d65190 - main - sound: Simplify pcm_feederdesc initialization List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7d33c3d651901c97a683689916c810cf4e26a057 Auto-Submitted: auto-generated The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=7d33c3d651901c97a683689916c810cf4e26a057 commit 7d33c3d651901c97a683689916c810cf4e26a057 Author: Christos Margiolis AuthorDate: 2025-11-11 12:06:01 +0000 Commit: Christos Margiolis CommitDate: 2025-11-11 12:06:01 +0000 sound: Simplify pcm_feederdesc initialization Currently we initialize a pcm_feederdesc array for every feeder, which is then used by FEEDER_DECLARE(). However, there is no reason for this to be an array, as each feeder has only one description. Additionally, since the only thing we define in that array is the feeder type, remove the pcm_feederdesc definitions altogether, and instead pass their type to FEEDER_DECLARE() directly, which will then initialize the pcm_feederdesc. This also simplifies feeder_register(). Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D53551 --- sys/dev/sound/pcm/feeder.c | 23 +++++++---------------- sys/dev/sound/pcm/feeder.h | 6 +++--- sys/dev/sound/pcm/feeder_eq.c | 7 +------ sys/dev/sound/pcm/feeder_format.c | 7 +------ sys/dev/sound/pcm/feeder_matrix.c | 7 +------ sys/dev/sound/pcm/feeder_mixer.c | 7 +------ sys/dev/sound/pcm/feeder_rate.c | 7 +------ sys/dev/sound/pcm/feeder_volume.c | 7 +------ 8 files changed, 16 insertions(+), 55 deletions(-) diff --git a/sys/dev/sound/pcm/feeder.c b/sys/dev/sound/pcm/feeder.c index e94e742b263f..0dddfa84543d 100644 --- a/sys/dev/sound/pcm/feeder.c +++ b/sys/dev/sound/pcm/feeder.c @@ -70,22 +70,13 @@ feeder_register(void *p) { struct feeder_class *fc = p; struct feedertab_entry *fte; - int i; - KASSERT(fc->desc != NULL, ("feeder '%s' has no descriptor", fc->name)); - - /* - * beyond this point failure is non-fatal but may result in some - * translations being unavailable - */ - i = 0; - while (fc->desc[i].type > 0) { - fte = malloc(sizeof(*fte), M_FEEDER, M_WAITOK | M_ZERO); - fte->feederclass = fc; - fte->desc = &fc->desc[i]; - SLIST_INSERT_HEAD(&feedertab, fte, link); - i++; - } + KASSERT(fc->desc.type != 0, ("feeder '%s' has no descriptor", fc->name)); + + fte = malloc(sizeof(*fte), M_FEEDER, M_WAITOK | M_ZERO); + fte->feederclass = fc; + fte->desc = &fc->desc; + SLIST_INSERT_HEAD(&feedertab, fte, link); } static void @@ -442,7 +433,7 @@ static struct feeder_class feeder_root_class = { .name = "feeder_root", .methods = feeder_root_methods, .size = sizeof(struct pcm_feeder), - .desc = NULL, + .desc = { 0 }, .data = NULL, }; /* diff --git a/sys/dev/sound/pcm/feeder.h b/sys/dev/sound/pcm/feeder.h index e417d68fea71..d8760f1c87ab 100644 --- a/sys/dev/sound/pcm/feeder.h +++ b/sys/dev/sound/pcm/feeder.h @@ -35,7 +35,7 @@ struct pcm_feederdesc { struct feeder_class { KOBJ_CLASS_FIELDS; - struct pcm_feederdesc *desc; + struct pcm_feederdesc desc; void *data; }; @@ -64,12 +64,12 @@ struct pcm_feeder *feeder_find(struct pcm_channel *c, u_int32_t type); void feeder_printchain(struct pcm_feeder *head); int feeder_chain(struct pcm_channel *); -#define FEEDER_DECLARE(feeder, pdata) \ +#define FEEDER_DECLARE(feeder, type, pdata) \ static struct feeder_class feeder ## _class = { \ .name = #feeder, \ .methods = feeder ## _methods, \ .size = sizeof(struct pcm_feeder), \ - .desc = feeder ## _desc, \ + .desc = { type, 0, 0, 0 }, \ .data = pdata, \ }; \ SYSINIT(feeder, SI_SUB_DRIVERS, SI_ORDER_ANY, feeder_register, \ diff --git a/sys/dev/sound/pcm/feeder_eq.c b/sys/dev/sound/pcm/feeder_eq.c index 88a083a3bfd1..05f5a5b82290 100644 --- a/sys/dev/sound/pcm/feeder_eq.c +++ b/sys/dev/sound/pcm/feeder_eq.c @@ -419,11 +419,6 @@ feed_eq_feed(struct pcm_feeder *f, struct pcm_channel *c, uint8_t *b, return (dst - b); } -static struct pcm_feederdesc feeder_eq_desc[] = { - { FEEDER_EQ, 0, 0, 0 }, - { 0, 0, 0, 0 } -}; - static kobj_method_t feeder_eq_methods[] = { KOBJMETHOD(feeder_init, feed_eq_init), KOBJMETHOD(feeder_free, feed_eq_free), @@ -432,7 +427,7 @@ static kobj_method_t feeder_eq_methods[] = { KOBJMETHOD_END }; -FEEDER_DECLARE(feeder_eq, NULL); +FEEDER_DECLARE(feeder_eq, FEEDER_EQ, NULL); static int32_t feed_eq_scan_preamp_arg(const char *s) diff --git a/sys/dev/sound/pcm/feeder_format.c b/sys/dev/sound/pcm/feeder_format.c index c9679cfeba44..21b54fcafcd7 100644 --- a/sys/dev/sound/pcm/feeder_format.c +++ b/sys/dev/sound/pcm/feeder_format.c @@ -172,11 +172,6 @@ feed_format_feed(struct pcm_feeder *f, struct pcm_channel *c, uint8_t *b, return (dst - b); } -static struct pcm_feederdesc feeder_format_desc[] = { - { FEEDER_FORMAT, 0, 0, 0 }, - { 0, 0, 0, 0 } -}; - static kobj_method_t feeder_format_methods[] = { KOBJMETHOD(feeder_init, feed_format_init), KOBJMETHOD(feeder_free, feed_format_free), @@ -185,4 +180,4 @@ static kobj_method_t feeder_format_methods[] = { KOBJMETHOD_END }; -FEEDER_DECLARE(feeder_format, NULL); +FEEDER_DECLARE(feeder_format, FEEDER_FORMAT, NULL); diff --git a/sys/dev/sound/pcm/feeder_matrix.c b/sys/dev/sound/pcm/feeder_matrix.c index a0af32b887ce..69c7e5962268 100644 --- a/sys/dev/sound/pcm/feeder_matrix.c +++ b/sys/dev/sound/pcm/feeder_matrix.c @@ -398,11 +398,6 @@ feed_matrix_feed(struct pcm_feeder *f, struct pcm_channel *c, uint8_t *b, return (dst - b); } -static struct pcm_feederdesc feeder_matrix_desc[] = { - { FEEDER_MATRIX, 0, 0, 0 }, - { 0, 0, 0, 0 } -}; - static kobj_method_t feeder_matrix_methods[] = { KOBJMETHOD(feeder_init, feed_matrix_init), KOBJMETHOD(feeder_free, feed_matrix_free), @@ -410,7 +405,7 @@ static kobj_method_t feeder_matrix_methods[] = { KOBJMETHOD_END }; -FEEDER_DECLARE(feeder_matrix, NULL); +FEEDER_DECLARE(feeder_matrix, FEEDER_MATRIX, NULL); /* External */ int diff --git a/sys/dev/sound/pcm/feeder_mixer.c b/sys/dev/sound/pcm/feeder_mixer.c index 028e9366aa8e..3c2a58ba145f 100644 --- a/sys/dev/sound/pcm/feeder_mixer.c +++ b/sys/dev/sound/pcm/feeder_mixer.c @@ -358,11 +358,6 @@ feed_mixer_feed(struct pcm_feeder *f, struct pcm_channel *c, uint8_t *b, return (rcnt); } -static struct pcm_feederdesc feeder_mixer_desc[] = { - { FEEDER_MIXER, 0, 0, 0 }, - { 0, 0, 0, 0 } -}; - static kobj_method_t feeder_mixer_methods[] = { KOBJMETHOD(feeder_init, feed_mixer_init), KOBJMETHOD(feeder_free, feed_mixer_free), @@ -371,4 +366,4 @@ static kobj_method_t feeder_mixer_methods[] = { KOBJMETHOD_END }; -FEEDER_DECLARE(feeder_mixer, NULL); +FEEDER_DECLARE(feeder_mixer, FEEDER_MIXER, NULL); diff --git a/sys/dev/sound/pcm/feeder_rate.c b/sys/dev/sound/pcm/feeder_rate.c index 166165e95e65..173a0c1fcd39 100644 --- a/sys/dev/sound/pcm/feeder_rate.c +++ b/sys/dev/sound/pcm/feeder_rate.c @@ -1705,11 +1705,6 @@ z_resampler_feed(struct pcm_feeder *f, struct pcm_channel *c, uint8_t *b, return (count - left); } -static struct pcm_feederdesc feeder_rate_desc[] = { - { FEEDER_RATE, 0, 0, 0 }, - { 0, 0, 0, 0 }, -}; - static kobj_method_t feeder_rate_methods[] = { KOBJMETHOD(feeder_init, z_resampler_init), KOBJMETHOD(feeder_free, z_resampler_free), @@ -1719,4 +1714,4 @@ static kobj_method_t feeder_rate_methods[] = { KOBJMETHOD_END }; -FEEDER_DECLARE(feeder_rate, NULL); +FEEDER_DECLARE(feeder_rate, FEEDER_RATE, NULL); diff --git a/sys/dev/sound/pcm/feeder_volume.c b/sys/dev/sound/pcm/feeder_volume.c index 119ab1b288d8..942f1a273edf 100644 --- a/sys/dev/sound/pcm/feeder_volume.c +++ b/sys/dev/sound/pcm/feeder_volume.c @@ -306,11 +306,6 @@ feed_volume_feed(struct pcm_feeder *f, struct pcm_channel *c, uint8_t *b, return (dst - b); } -static struct pcm_feederdesc feeder_volume_desc[] = { - { FEEDER_VOLUME, 0, 0, 0 }, - { 0, 0, 0, 0 } -}; - static kobj_method_t feeder_volume_methods[] = { KOBJMETHOD(feeder_init, feed_volume_init), KOBJMETHOD(feeder_free, feed_volume_free), @@ -319,7 +314,7 @@ static kobj_method_t feeder_volume_methods[] = { KOBJMETHOD_END }; -FEEDER_DECLARE(feeder_volume, NULL); +FEEDER_DECLARE(feeder_volume, FEEDER_VOLUME, NULL); /* Extern */