Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 May 2025 10:46:13 GMT
From:      Christos Margiolis <christos@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 3b0ff20f8d69 - stable/14 - sound: Make sndstat PVCHAN and RVCHAN nvlist parameters bool
Message-ID:  <202505021046.542AkDaC035943@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/14 has been updated by christos:

URL: https://cgit.FreeBSD.org/src/commit/?id=3b0ff20f8d69447bbea205187f759edc1f3d8e2d

commit 3b0ff20f8d69447bbea205187f759edc1f3d8e2d
Author:     Christos Margiolis <christos@FreeBSD.org>
AuthorDate: 2025-04-25 16:55:16 +0000
Commit:     Christos Margiolis <christos@FreeBSD.org>
CommitDate: 2025-05-02 10:42:58 +0000

    sound: Make sndstat PVCHAN and RVCHAN nvlist parameters bool
    
    Prior to 02d4eeabfd73 ("sound: Allocate vchans on-demand"), the
    play.vchans and rec.vchans sysctls corresponded to the value of
    d->pvchancount and d->rvchancount respectively, which is also what we
    are exporting through SNDST_DSPS_SOUND4_PVCHAN and
    SNDST_DSPS_SOUND4_RVCHAN respectively. Since that commit, the sysctls
    mentioned have been modified to show whether play/rec vchans are enabled
    or not. Modify the sndstat nvlist parameters accordingly.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential Revision:  https://reviews.freebsd.org/D49980
    
    (cherry picked from commit 0c0bb4c1401c9696fbb8d0b1fe88990db0e706c8)
    
    sound tests: Fix PVCHAN and RVCHAN fetching in sndstat_nv
    
    Fixes:          0c0bb4c1401c ("sound: Make sndstat PVCHAN and RVCHAN nvlist parameters bool")
    Reported by:    CI
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    
    (cherry picked from commit 6286b714f5e398cc2a87883d81aa087ee11ee310)
---
 share/man/man4/sndstat.4    | 8 ++++----
 sys/dev/sound/pcm/sndstat.c | 6 ++++--
 tests/sys/sound/sndstat.c   | 4 ++--
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/share/man/man4/sndstat.4 b/share/man/man4/sndstat.4
index 266bfcf304fe..1d51882b98a5 100644
--- a/share/man/man4/sndstat.4
+++ b/share/man/man4/sndstat.4
@@ -76,10 +76,10 @@ dsps (NVLIST ARRAY): 1
 		unit (NUMBER): 0
 		status (STRING): on hdaa0
 		bitperfect (BOOL): FALSE
-		pvchan (NUMBER): 1
+		pvchan (BOOL): TRUE
 		pvchanrate (NUMBER): 48000
 		pvchanformat (NUMBER): 0x00000010
-		rvchan (NUMBER): 0
+		rvchan (BOOL): TRUE
 		rvchanrate (NUMBER): 48000
 		rvchanformat (NUMBER): 0x00000010
 		channel_info (NVLIST_ARRAY): 1
@@ -181,13 +181,13 @@ Usually reports the driver the device is attached on.
 .It Dv bitperfect
 Whether the sound card has bit-perfect mode enabled.
 .It Dv pvchan
-Number of playback virtual channels.
+Playback virtual channels enabled.
 .It Dv pvchanrate
 Playback virtual channel sample rate.
 .It Dv pvchanformat
 Playback virtual channel format.
 .It Dv rvchan
-Number of recording virtual channels.
+Recording virtual channels enabled.
 .It Dv rvchanrate
 Recording virtual channel sample rate.
 .It Dv rvchanformat
diff --git a/sys/dev/sound/pcm/sndstat.c b/sys/dev/sound/pcm/sndstat.c
index 33cde235e070..cafd9aff4bdc 100644
--- a/sys/dev/sound/pcm/sndstat.c
+++ b/sys/dev/sound/pcm/sndstat.c
@@ -440,12 +440,14 @@ sndstat_build_sound4_nvlist(struct snddev_info *d, nvlist_t **dip)
 	nvlist_add_string(sound4di, SNDST_DSPS_SOUND4_STATUS, d->status);
 	nvlist_add_bool(
 	    sound4di, SNDST_DSPS_SOUND4_BITPERFECT, d->flags & SD_F_BITPERFECT);
-	nvlist_add_number(sound4di, SNDST_DSPS_SOUND4_PVCHAN, d->pvchancount);
+	nvlist_add_bool(sound4di, SNDST_DSPS_SOUND4_PVCHAN,
+	    d->flags & SD_F_PVCHANS);
 	nvlist_add_number(sound4di, SNDST_DSPS_SOUND4_PVCHANRATE,
 	    d->pvchanrate);
 	nvlist_add_number(sound4di, SNDST_DSPS_SOUND4_PVCHANFORMAT,
 	    d->pvchanformat);
-	nvlist_add_number(sound4di, SNDST_DSPS_SOUND4_RVCHAN, d->rvchancount);
+	nvlist_add_bool(sound4di, SNDST_DSPS_SOUND4_RVCHAN,
+	    d->flags & SD_F_RVCHANS);
 	nvlist_add_number(sound4di, SNDST_DSPS_SOUND4_RVCHANRATE,
 	    d->rvchanrate);
 	nvlist_add_number(sound4di, SNDST_DSPS_SOUND4_RVCHANFORMAT,
diff --git a/tests/sys/sound/sndstat.c b/tests/sys/sound/sndstat.c
index 553c745ec950..637e640d3cff 100644
--- a/tests/sys/sound/sndstat.c
+++ b/tests/sys/sound/sndstat.c
@@ -148,10 +148,10 @@ ATF_TC_BODY(sndstat_nv, tc)
 		NV(number, UNIT);
 		NV(string, STATUS);
 		NV(bool, BITPERFECT);
-		NV(number, PVCHAN);
+		NV(bool, PVCHAN);
 		NV(number, PVCHANRATE);
 		NV(number, PVCHANFORMAT);
-		NV(number, RVCHAN);
+		NV(bool, RVCHAN);
 		NV(number, PVCHANRATE);
 		NV(number, PVCHANFORMAT);
 #undef NV



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202505021046.542AkDaC035943>