The branch main has been updated by christos:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=0a0301deb5b6a9c66829dd20cff9d40c5ba9ad92

commit 0a0301deb5b6a9c66829dd20cff9d40c5ba9ad92
Author:     Christos Margiolis <chris...@freebsd.org>
AuthorDate: 2024-10-18 08:39:46 +0000
Commit:     Christos Margiolis <chris...@freebsd.org>
CommitDate: 2024-10-18 08:39:46 +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
---
 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) {

Reply via email to