git: 4a9c90d81e86 - stable/14 - sound: Export hardware and software buffer sample rate in sndstat nvlist
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 02 May 2025 10:46:15 UTC
The branch stable/14 has been updated by christos:
URL: https://cgit.FreeBSD.org/src/commit/?id=4a9c90d81e86ece27816e584835cd6f6ac97c8f5
commit 4a9c90d81e86ece27816e584835cd6f6ac97c8f5
Author: Christos Margiolis <christos@FreeBSD.org>
AuthorDate: 2025-04-25 16:55:38 +0000
Commit: Christos Margiolis <christos@FreeBSD.org>
CommitDate: 2025-05-02 10:43:48 +0000
sound: Export hardware and software buffer sample rate in sndstat nvlist
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D49983
(cherry picked from commit 19ec522d6dc1d4616e07f5668339fc637856f547)
sound tests: Fetch HWBUF_RATE and SWBUF_RATE in sndstat_nv
Introduced in 19ec522d6dc1 ("sound: Export hardware and software buffer
sample rate in sndstat nvlist").
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
(cherry picked from commit 52a0f967dcc5b78c5f2f7e49a96e9cec56472a4f)
---
share/man/man4/sndstat.4 | 6 ++++++
sys/dev/sound/pcm/sndstat.c | 4 ++++
sys/sys/sndstat.h | 2 ++
tests/sys/sound/sndstat.c | 2 ++
4 files changed, 14 insertions(+)
diff --git a/share/man/man4/sndstat.4 b/share/man/man4/sndstat.4
index 1d51882b98a5..1764ff418601 100644
--- a/share/man/man4/sndstat.4
+++ b/share/man/man4/sndstat.4
@@ -98,12 +98,14 @@ dsps (NVLIST ARRAY): 1
left_volume (NUMBER): 45
right_volume (NUMBER): 45
hwbuf_fmt (NUMBER): 0x200010
+ hwbuf_rate (NUMBER): 48000
hwbuf_size (NUMBER): 0
hwbuf_blksz (NUMBER): 0
hwbuf_blkcnt (NUMBER): 0
hwbuf_free (NUMBER): 0
hwbuf_ready (NUMBER): 0
swbuf_fmt (NUMBER): 0x201000
+ swbuf_rate (NUMBER): 48000
swbuf_size (NUMBER): 16384
swbuf_blksz (NUMBER): 2048
swbuf_blkcnt (NUMBER): 8
@@ -226,6 +228,8 @@ Left volume.
Right volume.
.It Dv hwbuf_format
Hardware buffer format.
+.It Dv hwbuf_rate
+Hardware buffer sample rate;
.It Dv hwbuf_size
Hardware buffer size.
.It Dv hwbuf_blksz
@@ -238,6 +242,8 @@ Free space in hardware buffer (in bytes).
Number of bytes ready to be read/written from hardware buffer.
.It Dv swbuf_format
Software buffer format.
+.It Dv swbuf_rate
+Software buffer sample rate;
.It Dv swbuf_size
Software buffer size.
.It Dv swbuf_blksz
diff --git a/sys/dev/sound/pcm/sndstat.c b/sys/dev/sound/pcm/sndstat.c
index cafd9aff4bdc..509a35c5a038 100644
--- a/sys/dev/sound/pcm/sndstat.c
+++ b/sys/dev/sound/pcm/sndstat.c
@@ -493,6 +493,8 @@ sndstat_build_sound4_nvlist(struct snddev_info *d, nvlist_t **dip)
CHN_GETVOLUME(c, SND_VOL_C_PCM, SND_CHN_T_FR));
nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_HWBUF_FORMAT,
sndbuf_getfmt(c->bufhard));
+ nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_HWBUF_RATE,
+ sndbuf_getspd(c->bufhard));
nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_HWBUF_SIZE,
sndbuf_getsize(c->bufhard));
nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_HWBUF_BLKSZ,
@@ -505,6 +507,8 @@ sndstat_build_sound4_nvlist(struct snddev_info *d, nvlist_t **dip)
sndbuf_getready(c->bufhard));
nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_SWBUF_FORMAT,
sndbuf_getfmt(c->bufsoft));
+ nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_SWBUF_RATE,
+ sndbuf_getspd(c->bufsoft));
nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_SWBUF_SIZE,
sndbuf_getsize(c->bufsoft));
nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_SWBUF_BLKSZ,
diff --git a/sys/sys/sndstat.h b/sys/sys/sndstat.h
index 6fd2e06ac483..a569f27f288f 100644
--- a/sys/sys/sndstat.h
+++ b/sys/sys/sndstat.h
@@ -94,12 +94,14 @@ struct sndstioc_nv_arg {
#define SNDST_DSPS_SOUND4_CHAN_LEFTVOL "left_volume"
#define SNDST_DSPS_SOUND4_CHAN_RIGHTVOL "right_volume"
#define SNDST_DSPS_SOUND4_CHAN_HWBUF_FORMAT "hwbuf_format"
+#define SNDST_DSPS_SOUND4_CHAN_HWBUF_RATE "hwbuf_rate"
#define SNDST_DSPS_SOUND4_CHAN_HWBUF_SIZE "hwbuf_size"
#define SNDST_DSPS_SOUND4_CHAN_HWBUF_BLKSZ "hwbuf_blksz"
#define SNDST_DSPS_SOUND4_CHAN_HWBUF_BLKCNT "hwbuf_blkcnt"
#define SNDST_DSPS_SOUND4_CHAN_HWBUF_FREE "hwbuf_free"
#define SNDST_DSPS_SOUND4_CHAN_HWBUF_READY "hwbuf_ready"
#define SNDST_DSPS_SOUND4_CHAN_SWBUF_FORMAT "swbuf_format"
+#define SNDST_DSPS_SOUND4_CHAN_SWBUF_RATE "swbuf_rate"
#define SNDST_DSPS_SOUND4_CHAN_SWBUF_SIZE "swbuf_size"
#define SNDST_DSPS_SOUND4_CHAN_SWBUF_BLKSZ "swbuf_blksz"
#define SNDST_DSPS_SOUND4_CHAN_SWBUF_BLKCNT "swbuf_blkcnt"
diff --git a/tests/sys/sound/sndstat.c b/tests/sys/sound/sndstat.c
index 637e640d3cff..ed292b570429 100644
--- a/tests/sys/sound/sndstat.c
+++ b/tests/sys/sound/sndstat.c
@@ -184,12 +184,14 @@ ATF_TC_BODY(sndstat_nv, tc)
NV(number, LEFTVOL);
NV(number, RIGHTVOL);
NV(number, HWBUF_FORMAT);
+ NV(number, HWBUF_RATE);
NV(number, HWBUF_SIZE);
NV(number, HWBUF_BLKSZ);
NV(number, HWBUF_BLKCNT);
NV(number, HWBUF_FREE);
NV(number, HWBUF_READY);
NV(number, SWBUF_FORMAT);
+ NV(number, SWBUF_RATE);
NV(number, SWBUF_SIZE);
NV(number, SWBUF_BLKSZ);
NV(number, SWBUF_BLKCNT);