git: 6cf4db422c21 - stable/14 - sound: Move global variable initialization to sound_modevent()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 20 Oct 2024 11:21:35 UTC
The branch stable/14 has been updated by christos:
URL: https://cgit.FreeBSD.org/src/commit/?id=6cf4db422c21ab4a0c39ed3f7c5f5d864c8ea2a2
commit 6cf4db422c21ab4a0c39ed3f7c5f5d864c8ea2a2
Author: Christos Margiolis <christos@FreeBSD.org>
AuthorDate: 2024-10-18 08:39:46 +0000
Commit: Christos Margiolis <christos@FreeBSD.org>
CommitDate: 2024-10-20 11:21:04 +0000
sound: Move global variable initialization to sound_modevent()
There is no reason to initialize global variables in feeder_register(),
as these variables are unrelated to what the function does. Instead,
initialize them during sound(4) load.
Sponsored by: The FreeBSD Foundation
MFC after: 2 days
Reviewed by: zlei
Differential Revision: https://reviews.freebsd.org/D46749
(cherry picked from commit 0a0301deb5b6a9c66829dd20cff9d40c5ba9ad92)
---
sys/dev/sound/pcm/feeder.c | 43 -------------------------------------------
sys/dev/sound/pcm/sound.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 46 insertions(+), 43 deletions(-)
diff --git a/sys/dev/sound/pcm/feeder.c b/sys/dev/sound/pcm/feeder.c
index 716eb07feaae..87437c6d00b5 100644
--- a/sys/dev/sound/pcm/feeder.c
+++ b/sys/dev/sound/pcm/feeder.c
@@ -77,49 +77,6 @@ feeder_register(void *p)
SLIST_INSERT_HEAD(&feedertab, fte, link);
feedercnt++;
- /* initialize global variables */
-
- if (snd_verbose < 0 || snd_verbose > 4)
- snd_verbose = 1;
-
- if (snd_unit < 0)
- snd_unit = -1;
-
- if (snd_maxautovchans < 0 ||
- snd_maxautovchans > SND_MAXVCHANS)
- snd_maxautovchans = 0;
-
- if (chn_latency < CHN_LATENCY_MIN ||
- chn_latency > CHN_LATENCY_MAX)
- chn_latency = CHN_LATENCY_DEFAULT;
-
- if (chn_latency_profile < CHN_LATENCY_PROFILE_MIN ||
- chn_latency_profile > CHN_LATENCY_PROFILE_MAX)
- chn_latency_profile = CHN_LATENCY_PROFILE_DEFAULT;
-
- if (feeder_rate_min < FEEDRATE_MIN ||
- feeder_rate_max < FEEDRATE_MIN ||
- feeder_rate_min > FEEDRATE_MAX ||
- feeder_rate_max > FEEDRATE_MAX ||
- !(feeder_rate_min < feeder_rate_max)) {
- feeder_rate_min = FEEDRATE_RATEMIN;
- feeder_rate_max = FEEDRATE_RATEMAX;
- }
-
- if (feeder_rate_round < FEEDRATE_ROUNDHZ_MIN ||
- feeder_rate_round > FEEDRATE_ROUNDHZ_MAX)
- feeder_rate_round = FEEDRATE_ROUNDHZ;
-
- if (bootverbose)
- printf("%s: snd_unit=%d snd_maxautovchans=%d "
- "latency=%d "
- "feeder_rate_min=%d feeder_rate_max=%d "
- "feeder_rate_round=%d\n",
- __func__, snd_unit, snd_maxautovchans,
- chn_latency,
- feeder_rate_min, feeder_rate_max,
- feeder_rate_round);
-
/* we've got our root feeder so don't veto pcm loading anymore */
pcm_veto_load = 0;
diff --git a/sys/dev/sound/pcm/sound.c b/sys/dev/sound/pcm/sound.c
index 330c99de14d1..da28a267c81a 100644
--- a/sys/dev/sound/pcm/sound.c
+++ b/sys/dev/sound/pcm/sound.c
@@ -829,6 +829,51 @@ sound_oss_card_info(oss_card_info *si)
/************************************************************************/
+static void
+sound_global_init(void)
+{
+ if (snd_verbose < 0 || snd_verbose > 4)
+ snd_verbose = 1;
+
+ if (snd_unit < 0)
+ snd_unit = -1;
+
+ if (snd_maxautovchans < 0 ||
+ snd_maxautovchans > SND_MAXVCHANS)
+ snd_maxautovchans = 0;
+
+ if (chn_latency < CHN_LATENCY_MIN ||
+ chn_latency > CHN_LATENCY_MAX)
+ chn_latency = CHN_LATENCY_DEFAULT;
+
+ if (chn_latency_profile < CHN_LATENCY_PROFILE_MIN ||
+ chn_latency_profile > CHN_LATENCY_PROFILE_MAX)
+ chn_latency_profile = CHN_LATENCY_PROFILE_DEFAULT;
+
+ if (feeder_rate_min < FEEDRATE_MIN ||
+ feeder_rate_max < FEEDRATE_MIN ||
+ feeder_rate_min > FEEDRATE_MAX ||
+ feeder_rate_max > FEEDRATE_MAX ||
+ !(feeder_rate_min < feeder_rate_max)) {
+ feeder_rate_min = FEEDRATE_RATEMIN;
+ feeder_rate_max = FEEDRATE_RATEMAX;
+ }
+
+ if (feeder_rate_round < FEEDRATE_ROUNDHZ_MIN ||
+ feeder_rate_round > FEEDRATE_ROUNDHZ_MAX)
+ feeder_rate_round = FEEDRATE_ROUNDHZ;
+
+ if (bootverbose)
+ printf("%s: snd_unit=%d snd_maxautovchans=%d "
+ "latency=%d "
+ "feeder_rate_min=%d feeder_rate_max=%d "
+ "feeder_rate_round=%d\n",
+ __func__, snd_unit, snd_maxautovchans,
+ chn_latency,
+ feeder_rate_min, feeder_rate_max,
+ feeder_rate_round);
+}
+
static int
sound_modevent(module_t mod, int type, void *data)
{
@@ -839,6 +884,7 @@ sound_modevent(module_t mod, int type, void *data)
case MOD_LOAD:
pcm_devclass = devclass_create("pcm");
pcmsg_unrhdr = new_unrhdr(1, INT_MAX, NULL);
+ sound_global_init();
break;
case MOD_UNLOAD:
if (pcmsg_unrhdr != NULL) {