From nobody Tue Feb 25 11:48:15 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z2G8145Dfz5pjnf; Tue, 25 Feb 2025 11:48:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z2G800DYdz3kFH; Tue, 25 Feb 2025 11:48:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740484096; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WVNIKQ6BgLfoVRHWC7ltZ8XzbpI1gKHwT2wDQRdhX+g=; b=CBP+kupPXD50ahFgQ7f3HBZvHRgRALuRAC5LKNEIV0qTjW6lKlXO40EKIr8ZwLRU3x5pok hAkP8wUSOsEz0kvUK8SAeGWBRnLwkDTl51ab75Vkk5xw0kYAeQMdVJAmtLDLYrtEa+X0PH UUsf2X3uvuqPexbH7j1L6ZENQIl90ev3pBvSH88bUmgJjwefGwsz5a2hlHw1lYvSjLmlzl CZBr3Zy8UsTU3rDWAzdC5vQ1dJ1HgdBRzTgAvUrSXv0TOT9C4qbwvM4C+/B01KaHg9N0jD wvDfd6D8wCpQ0rnecmXhKDATRaqw7SHZi4NWG6ULSbX/tFVhOVYFThZBY15xWA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1740484096; a=rsa-sha256; cv=none; b=Oey8eFl3Uy2ZMv1Rv6ymv86LAYqzsfnhnPKmOH8HwrRHCmI/CUGzaf7HNBdVgKx3/i4cbL 3hB+fg62lBNWok5uDyNp8KZ+z5Y/QZo8CZu9Fvg3AWYibcPCveaT8A7EYNIZRIb+nu5u02 UP9m0QJTRjmaFhkRxsVT7x7GwpMYE5HLmpzy7nQu4wHFAu2bZrNUGsn+lamJ0+zqAzAkEC L3WL0XHc2vliFPGPvIf/4FBusThdEaJm3kLd/b8k0MMSLgYj/UwGahBYxIX7FQ2HKpUUoo F5aYW73j1jnuyPMttgyZaaNbJ3P77erbyMBQOQ8KyGmSJuWvAyf4Y+UzvFD7cQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740484096; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WVNIKQ6BgLfoVRHWC7ltZ8XzbpI1gKHwT2wDQRdhX+g=; b=hRBN7/MemjIxikFetYL7MmDkLdxHccNdcgeLJzwSv3aTh0A9yCfyHQqYRWu9tfj2E0bny5 KhwBD5SdSOTJwkePgsZoyd3cPsWIXGpmhvNopsHxqM78d6HQdkgkaCSrNLttOKiPYn+dZw rqMb+7QVUKOvKUgoYQZr6qXvqc8IoyVN6UEhXP+tJeL7Q5OvoJy10rpyRmO3sr5xdPtO1B wLLTaUSoMpwqbyCrxAv9tPjjEJF5ceCCdqNdGhYlYeT2mwnMWpptrcY7NaCQFUv0vZIczL v41Osrq4bJyfefKn++MGtblk+wurIdsBiBqumS7YxGoOFzOrMOgWn/cNeMHC/Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z2G7z6LjMz8ph; Tue, 25 Feb 2025 11:48:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 51PBmFmT050933; Tue, 25 Feb 2025 11:48:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 51PBmFrh050930; Tue, 25 Feb 2025 11:48:15 GMT (envelope-from git) Date: Tue, 25 Feb 2025 11:48:15 GMT Message-Id: <202502251148.51PBmFrh050930@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Christos Margiolis Subject: git: b50f53cf872e - main - sound: Cache vchanmode List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b50f53cf872eca6b9a174a51fa183e8c2f88d97c Auto-Submitted: auto-generated The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=b50f53cf872eca6b9a174a51fa183e8c2f88d97c commit b50f53cf872eca6b9a174a51fa183e8c2f88d97c Author: Christos Margiolis AuthorDate: 2025-02-25 11:43:46 +0000 Commit: Christos Margiolis CommitDate: 2025-02-25 11:43:46 +0000 sound: Cache vchanmode We already cache vchanrate and vchanformat. Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D48335 --- sys/dev/sound/pcm/sound.h | 4 ++-- sys/dev/sound/pcm/vchan.c | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/sys/dev/sound/pcm/sound.h b/sys/dev/sound/pcm/sound.h index 0452a58dfcbf..92d6e79600d1 100644 --- a/sys/dev/sound/pcm/sound.h +++ b/sys/dev/sound/pcm/sound.h @@ -238,8 +238,8 @@ struct snddev_info { struct mtx *lock; struct cdev *mixer_dev; struct cdev *dsp_dev; - uint32_t pvchanrate, pvchanformat; - uint32_t rvchanrate, rvchanformat; + uint32_t pvchanrate, pvchanformat, pvchanmode; + uint32_t rvchanrate, rvchanformat, rvchanmode; int32_t eqpreamp; struct sysctl_ctx_list play_sysctl_ctx, rec_sysctl_ctx; struct sysctl_oid *play_sysctl_tree, *rec_sysctl_tree; diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c index 297120199fe7..379d647cbcf8 100644 --- a/sys/dev/sound/pcm/vchan.c +++ b/sys/dev/sound/pcm/vchan.c @@ -356,7 +356,7 @@ sysctl_dev_pcm_vchanmode(SYSCTL_HANDLER_ARGS) struct snddev_info *d; struct pcm_channel *c; uint32_t dflags; - int direction, ret; + int *vchanmode, direction, ret; char dtype[16]; d = devclass_get_softc(pcm_devclass, VCHAN_SYSCTL_UNIT(oidp->oid_arg1)); @@ -373,6 +373,7 @@ sysctl_dev_pcm_vchanmode(SYSCTL_HANDLER_ARGS) return (ENODEV); } direction = PCMDIR_PLAY; + vchanmode = &d->pvchanmode; break; case VCHAN_REC: if ((d->flags & SD_F_RVCHANS) == 0) { @@ -380,6 +381,7 @@ sysctl_dev_pcm_vchanmode(SYSCTL_HANDLER_ARGS) return (ENODEV); } direction = PCMDIR_REC; + vchanmode = &d->rvchanmode; break; default: PCM_UNLOCK(d); @@ -402,14 +404,12 @@ sysctl_dev_pcm_vchanmode(SYSCTL_HANDLER_ARGS) KASSERT(direction == c->direction, ("%s(): invalid direction %d/%d", __func__, direction, c->direction)); - CHN_LOCK(c); - if (c->flags & CHN_F_VCHAN_PASSTHROUGH) + if (*vchanmode & CHN_F_VCHAN_PASSTHROUGH) strlcpy(dtype, "passthrough", sizeof(dtype)); - else if (c->flags & CHN_F_VCHAN_ADAPTIVE) + else if (*vchanmode & CHN_F_VCHAN_ADAPTIVE) strlcpy(dtype, "adaptive", sizeof(dtype)); else strlcpy(dtype, "fixed", sizeof(dtype)); - CHN_UNLOCK(c); ret = sysctl_handle_string(oidp, dtype, sizeof(dtype), req); if (ret == 0 && req->newptr != NULL) { @@ -436,6 +436,7 @@ sysctl_dev_pcm_vchanmode(SYSCTL_HANDLER_ARGS) c->flags &= ~CHN_F_VCHAN_DYNAMIC; c->flags |= dflags; CHN_UNLOCK(c); + *vchanmode = dflags; } PCM_RELEASE_QUICK(d);