From nobody Mon Oct 26 17:05:08 2026 X-Original-To: dev-commits-src-branches@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 4jD0P04F7cz6xGCR for ; Mon, 26 Oct 2026 17:05:08 +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) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4jD0P03l9Kz4DSg for ; Mon, 26 Oct 2026 17:05:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793034308; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rs/8Wxu7Pto/QiHEYCqMBLQQgeMelPpaol0cX2Urq4M=; b=gl4cHwgYkFI16NNpqZXx7+WiNCXwRTCxtfsfpPhhnkxaa+n3q9DAyjtVK2G5xOSRe2yLjv zweZd0RtCcq8LBM43/iO8B2e1bVDv9q3UfFf6glBJrrsonf2KO7tTq3oZtTLJxSLFG9qKm 08FXXAOG+WLCKB092fCb6X3k9gjIQhRz7PG+iuAMuOZyDm+wZblV5AVYTE9fMe6Gc33jQN 6Bk+iOkG7bIXL44hHhGF8c3IHpGXf/oNJAh/IXsjTq0u0rBbTmPgsJNkMVIAAOU/irCtFB ZPwMWyzbspaSTIZ8ZVHhVIzclpH7JaZDplxqqCKD/XmUO+b8p6WQ/YUwo3yozw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1793034308; b=RT8Ju34Mp/FqQsMUpRliVsilosvNtw+8lIB6+jdqsJ8lMfZjl7myGjF0rdcnAIt/U8YRKo wZLHam2bc2KybMqa8pqQDlfyZpCq7wA/gb9XuBkHWhjn7AmGt9ObcaHyPaXMZdjiiWRXMA SWWj2VEjhAGjQnriICBfe++wrKqva8oyG9vbv50Ip1HwzXg9mwpF/10G2T6AK/FrfTMxUX JXYyGy9cHRXVy9+hTRUGU3KygOFjKRkx+OgeHmA3my8Xux/uTivOrTwNZgWRZ9pl1iXYDE /9c9sLmcrwdaRLzAPCEy+d7n3FgVab32gjBvcBU2SNxkpNLQFtG006VXirQYbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793034308; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rs/8Wxu7Pto/QiHEYCqMBLQQgeMelPpaol0cX2Urq4M=; b=PlLJLIGSpfRCxkjUo0DYVEfOTalIbn9Xqg/907R3fIngk+SBYbPq0Bqk7FmvwXAvcBpt4q cNGe76+YCjx76TkN29cY4OsT4LPC62dIyoMAIE0HEZJ8pOeJcSqsiY3y3Y5XS5oGHX48Bm ee4barKWyoXxVvmg1xQfecv3tWEOx1DBjmSJWWtDfAiqZqYVQfxkkjfNK6GYedUrO5oHm5 wnRRSZL4v8UoSiqsCJ7/z9ncNPSr/tldNOp03EWlFI5YnkQiqpAqZw8wO+veJMsukjS6Ox 6IHVEUwgKGzFdAMgk6N/azw1MisS2g4Y6w5a4Cbup2mY+A8vPvhL/yCR8lnNOA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4jD0P02pr1zjxC for ; Mon, 26 Oct 2026 17:05:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 205d5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 26 Oct 2026 17:05:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Goran=?utf-8?Q? Meki=C4=87?= From: Christos Margiolis Subject: git: 67d06cf1edca - stable/15 - sound examples: trigger dsp devices via syncgroup List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: Commits to the stable branches of the FreeBSD src repository List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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/stable/15 X-Git-Reftype: branch X-Git-Commit: 67d06cf1edcadee760012cbea04dd3f18e0c450f Auto-Submitted: auto-generated Date: Mon, 26 Oct 2026 17:05:08 +0000 Message-Id: <6adf8844.205d5.27665d53@gitrepo.freebsd.org> The branch stable/15 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=67d06cf1edcadee760012cbea04dd3f18e0c450f commit 67d06cf1edcadee760012cbea04dd3f18e0c450f Author: Goran Mekić AuthorDate: 2026-10-19 08:59:36 +0000 Commit: Christos Margiolis CommitDate: 2026-10-26 17:04:57 +0000 sound examples: trigger dsp devices via syncgroup Triggering is only needed if device is in mmap mode, and in mmap example the device is triggered as part of syncgroup. For non-mmap mode, triggering is not needed at all. Triggering mmap'ed device too early would start the IPTR/OPTR counters and that would cause those pointers to be out of sync, so let syncgroup do the triggering once the device is fully configured and ready for capture and playback. MFC after: 1 week Reviewed by: christos Differential Revision: https://reviews.freebsd.org/D60839 (cherry picked from commit d3aa926bffd20e4ef0e12e3ee9af1707ad234cda) --- share/examples/sound/oss.h | 41 +++++++++++++++-------------------------- 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/share/examples/sound/oss.h b/share/examples/sound/oss.h index cf38b8de2b0c..77a022646509 100644 --- a/share/examples/sound/oss.h +++ b/share/examples/sound/oss.h @@ -98,10 +98,6 @@ oss_init(struct config *config) if (ioctl(config->fd, SNDCTL_DSP_GETCAPS, &config->audio_info.caps) < 0) err(1, "Unable to get capabilities"); - /* Check if device supports triggering */ - if (!(config->audio_info.caps & PCM_CAP_TRIGGER)) - errx(1, "Device doesn't support triggering!\n"); - /* Handle memory mapped mode */ if (config->mmap) { if (!(config->audio_info.caps & PCM_CAP_MMAP)) @@ -216,27 +212,24 @@ oss_init(struct config *config) config->sample_count, config->audio_info.max_channels, config->sample_size, config->sample_rate, config->format); - /* Set trigger direction and mmap protection */ - switch (config->mode & O_ACCMODE) { - case O_RDONLY: - tmp = PCM_ENABLE_INPUT; - prot = PROT_READ; - break; - case O_WRONLY: - tmp = PCM_ENABLE_OUTPUT; - prot = PROT_WRITE; - break; - case O_RDWR: - tmp = PCM_ENABLE_INPUT | PCM_ENABLE_OUTPUT; - prot = PROT_READ | PROT_WRITE; - break; - default: - errx(1, "Invalid mode %d", config->mode); - break; - } /* Map or allocate the buffer */ if (config->mmap) { + /* Set mmap protection */ + switch (config->mode & O_ACCMODE) { + case O_RDONLY: + prot = PROT_READ; + break; + case O_WRONLY: + prot = PROT_WRITE; + break; + case O_RDWR: + prot = PROT_READ | PROT_WRITE; + break; + default: + errx(1, "Invalid mode %d", config->mode); + break; + } config->buf = mmap(NULL, config->buffer_info.bytes, prot, MAP_SHARED, config->fd, 0); if (config->buf == MAP_FAILED) err(1, "Memory map failed"); @@ -244,8 +237,4 @@ oss_init(struct config *config) if ((config->buf = malloc(config->buffer_info.bytes)) == NULL) err(1, "Allocating buffer failed"); } - - /* Set the trigger */ - if (ioctl(config->fd, SNDCTL_DSP_SETTRIGGER, &tmp) < 0) - err(1, "Failed to set trigger"); }