git: 3b0ff20f8d69 - stable/14 - sound: Make sndstat PVCHAN and RVCHAN nvlist parameters bool
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 02 May 2025 10:46:13 UTC
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