git: a946852ff296 - main - sound: Merge pcm_sysinit() with pcm_register()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 29 May 2025 10:25:25 UTC
The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=a946852ff2963b5ec83cb7ccb5eee214b1d47ad5 commit a946852ff2963b5ec83cb7ccb5eee214b1d47ad5 Author: Christos Margiolis <christos@FreeBSD.org> AuthorDate: 2025-05-29 10:24:08 +0000 Commit: Christos Margiolis <christos@FreeBSD.org> CommitDate: 2025-05-29 10:25:18 +0000 sound: Merge pcm_sysinit() with pcm_register() There is no need for a separate function here. No functional change intended. Sponsored by: The FreeBSD Foundation MFC after: 1 day Reviewed by: adrian, markj Differential Revision: https://reviews.freebsd.org/D50409 --- sys/dev/sound/pcm/sound.c | 67 ++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 38 deletions(-) diff --git a/sys/dev/sound/pcm/sound.c b/sys/dev/sound/pcm/sound.c index e690b53c411d..cb510d526fa8 100644 --- a/sys/dev/sound/pcm/sound.c +++ b/sys/dev/sound/pcm/sound.c @@ -57,8 +57,6 @@ SYSCTL_INT(_hw_snd, OID_AUTO, default_auto, CTLFLAG_RWTUN, SYSCTL_NODE(_hw, OID_AUTO, snd, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "Sound driver"); -static void pcm_sysinit(device_t); - /** * @brief Unit number allocator for syncgroup IDs */ @@ -351,41 +349,6 @@ sysctl_dev_pcm_mode(SYSCTL_HANDLER_ARGS) return (sysctl_handle_int(oidp, &mode, 0, req)); } -static void -pcm_sysinit(device_t dev) -{ - struct snddev_info *d = device_get_softc(dev); - - sysctl_ctx_init(&d->play_sysctl_ctx); - d->play_sysctl_tree = SYSCTL_ADD_NODE(&d->play_sysctl_ctx, - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "play", - CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "playback channels node"); - sysctl_ctx_init(&d->rec_sysctl_ctx); - d->rec_sysctl_tree = SYSCTL_ADD_NODE(&d->rec_sysctl_ctx, - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "rec", - CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "recording channels node"); - - /* XXX: a user should be able to set this with a control tool, the - sysadmin then needs min+max sysctls for this */ - SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "buffersize", CTLFLAG_RD, &d->bufsz, 0, "allocated buffer size"); - SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, - "bitperfect", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, d, - sizeof(d), sysctl_dev_pcm_bitperfect, "I", - "bit-perfect playback/recording (0=disable, 1=enable)"); - SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, - "mode", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, d, sizeof(d), - sysctl_dev_pcm_mode, "I", - "mode (1=mixer, 2=play, 4=rec. The values are OR'ed if more than " - "one mode is supported)"); - vchan_initsys(dev); - if (d->flags & SD_F_EQ) - feeder_eq_initsys(dev); -} - /* * Basic initialization so that drivers can use pcm_addchan() before * pcm_register(). @@ -455,7 +418,35 @@ pcm_register(device_t dev, char *str) * Create all sysctls once SD_F_REGISTERED is set else * tunable sysctls won't work: */ - pcm_sysinit(dev); + sysctl_ctx_init(&d->play_sysctl_ctx); + d->play_sysctl_tree = SYSCTL_ADD_NODE(&d->play_sysctl_ctx, + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "play", + CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "playback channels node"); + sysctl_ctx_init(&d->rec_sysctl_ctx); + d->rec_sysctl_tree = SYSCTL_ADD_NODE(&d->rec_sysctl_ctx, + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "rec", + CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "recording channels node"); + + /* XXX: a user should be able to set this with a control tool, the + sysadmin then needs min+max sysctls for this */ + SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), + OID_AUTO, "buffersize", CTLFLAG_RD, &d->bufsz, 0, + "allocated buffer size"); + SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, + "bitperfect", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, d, + sizeof(d), sysctl_dev_pcm_bitperfect, "I", + "bit-perfect playback/recording (0=disable, 1=enable)"); + SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, + "mode", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, d, sizeof(d), + sysctl_dev_pcm_mode, "I", + "mode (1=mixer, 2=play, 4=rec. The values are OR'ed if more than " + "one mode is supported)"); + vchan_initsys(dev); + if (d->flags & SD_F_EQ) + feeder_eq_initsys(dev); if (snd_unit_auto < 0) snd_unit_auto = (snd_unit < 0) ? 1 : 0;