From nobody Mon Oct 19 09:01:13 2026 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 4j7Tzz2rXWz6w8JS for ; Mon, 19 Oct 2026 09:01:19 +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 4j7Tzz29Kwz4Yqf for ; Mon, 19 Oct 2026 09:01:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1792400479; 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=cykW5Hp4W/3lSWsjxuIYLzhhX+sj0H9QBKNhnSb4nCU=; b=ekvzk6AhYrJ1YLkXmwXyTVDKk32GrQKMtQQcXPYRwoi1xsQRw9w5vwLSjnOT6AgCfK59Vs VoOY5/Vsw25GptwkmD8yziBhXqP7Jtd/EGB/9v1BRHcC9YqZxuYfial4gSwMTWfStZsZ6B yphPMeLJS+pGz9JdRtTTNf0omruIogaq2ms1FBCAoSzLw4QY9q/ipveZAIuEX2IT0Bgugs E/C00wZ6tZYimaNjq4mhDqydP+p9uvBDr12BnkduZJhmE0anhyVgPYygfhGvRzvk07LUgD Y9/X+1Ecp2CpLNOfRhhijPrJFVK1FSEoLrR9G1O1AzL3EKCQU4NfMiUOxZZUZg== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1792400479; b=cvARuP/0w4mk9mnPioCIKd4YW9K6T2JXAFhuHD0zEVYdkjjqNU8/z6iMlKrJiMNg9tUfVa Zg0NKYiyagL9AcNybLC//MytyKtD8uJqbGHcohAYt6L4WbdRn6L8sa44g4AhjD4JybCyuK xv/JoVmW1X3ZFrHjLp5SblD83bxU47xKg+WHHWHcTfnNjlAD1Z6Jou1FG2bGqSeppD0PPN ETUR20QMimqZ6/9VNmMMhOUIZAWBpKygLa8J6xr1qUL9vTlRjKxmAZAkFVtd8ZTr+ra6Em m2VsO7Fwn9ytoHM2N+j9PWdnR1AiU2aa4pGt1GD06EpEWm6COy6boNajBBk9cQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1792400479; 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=cykW5Hp4W/3lSWsjxuIYLzhhX+sj0H9QBKNhnSb4nCU=; b=wbfoL7FdcAULw6XpAPKGQ8FogFdMSGzyrkLe9Ych9IAHRowHWzUoRz+dtm4t1qFuL8OP1Q 1o1tagzTWQrZBQsCPiyd62a4IkP9KTuCpkUpow9bbYqdMk0uba/4y38UNr/NzGTdjCXCMz Wqe9fwE7mndfaE+k7qEmcnphojyJEb2MJbURMhytZthNHGFOkPnkeC5nSFmqzGk8FMfZaA ZcBCE0+G6zsWeMMMscDlGN+qysqiLOXpgKIKUSlO2oscVlmd+3oQD0zHXV6sz5zfibIx7l TF2OR5OiFnoSC1bnAA9Ya8wd0UeNzW1Q1njb8Lg97vEo0iYa1NH+VGIgMz5qTQ== 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 4j7Tzz1XWlzDgW for ; Mon, 19 Oct 2026 09:01:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44119 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 19 Oct 2026 09:01:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Goran=?utf-8?Q? Meki=C4=87?= From: Christos Margiolis Subject: git: d3aa926bffd2 - main - sound examples: trigger dsp devices via syncgroup List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: Commit messages for all branches of the 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/main X-Git-Reftype: branch X-Git-Commit: d3aa926bffd20e4ef0e12e3ee9af1707ad234cda Auto-Submitted: auto-generated Date: Mon, 19 Oct 2026 09:01:13 +0000 Message-Id: <6ad5dc59.44119.2a1f4cbb@gitrepo.freebsd.org> The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=d3aa926bffd20e4ef0e12e3ee9af1707ad234cda commit d3aa926bffd20e4ef0e12e3ee9af1707ad234cda Author: Goran Mekić AuthorDate: 2026-10-19 08:59:36 +0000 Commit: Christos Margiolis CommitDate: 2026-10-19 08:59:36 +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 --- 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"); }