Date: Wed, 01 Oct 2025 10:28:04 +0200 From: "Christos Margiolis" <christos@FreeBSD.org> To: "Guido Falsi" <mad@madpilot.net>, <src-committers@FreeBSD.org>, <dev-commits-src-all@FreeBSD.org>, <dev-commits-src-main@FreeBSD.org> Subject: Re: git: 2ffaca551eaf - main - snd_hda: Implement automatic redirection between associations Message-ID: <DD6UDSU69WVV.13920N4CQ4LTA@FreeBSD.org> In-Reply-To: <9bb0f51a-cb7f-45c4-9a48-bffbadf99845@madpilot.net> References: <202509301052.58UAqxgM026265@gitrepo.freebsd.org> <b486619a-55e1-4956-95c2-eef7237768d3@madpilot.net> <9bb0f51a-cb7f-45c4-9a48-bffbadf99845@madpilot.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue Sep 30, 2025 at 10:10 PM CEST, Guido Falsi wrote: > On 9/30/25 21:22, Guido Falsi wrote: >> On 9/30/25 12:52, Christos Margiolis wrote: >>> The branch main has been updated by christos: >>> >>> URL: https://cgit.FreeBSD.org/src/commit/?=20 >>> id=3D2ffaca551eaf32c17f701762ecf29a961cf19aa4 >>> >>> commit 2ffaca551eaf32c17f701762ecf29a961cf19aa4 >>> Author:=C2=A0=C2=A0=C2=A0=C2=A0 Christos Margiolis <christos@FreeBSD.or= g> >>> AuthorDate: 2025-09-30 10:52:44 +0000 >>> Commit:=C2=A0=C2=A0=C2=A0=C2=A0 Christos Margiolis <christos@FreeBSD.or= g> >>> CommitDate: 2025-09-30 10:52:44 +0000 >>> >>> =C2=A0=C2=A0=C2=A0=C2=A0 snd_hda: Implement automatic redirection betwe= en associations >>> =C2=A0=C2=A0=C2=A0=C2=A0 For audio to be redirected to the headphones/h= eadset after=20 >>> plugging the >>> =C2=A0=C2=A0=C2=A0=C2=A0 jack, or back to the speaker/internal mic when= unplugging it, the >>> =C2=A0=C2=A0=C2=A0=C2=A0 speaker and headphone pins need to be part of = the same association >>> =C2=A0=C2=A0=C2=A0=C2=A0 (i.e., the same PCM device). This patch makes = it possible to=20 >>> redirect >>> =C2=A0=C2=A0=C2=A0=C2=A0 audio even between different associations, whi= ch can reduce the=20 >>> need for >>> =C2=A0=C2=A0=C2=A0=C2=A0 manual pin patching. >>> =C2=A0=C2=A0=C2=A0=C2=A0 The idea is that we issue a devctl_notify() fr= om within the jack >>> =C2=A0=C2=A0=C2=A0=C2=A0 detection callback whenever a jack is (un-)plu= gged to redirect=20 >>> audio to >>> =C2=A0=C2=A0=C2=A0=C2=A0 the appropriate device. Then the snd.conf devd= script is=20 >>> responsible for >>> =C2=A0=C2=A0=C2=A0=C2=A0 using virtual_oss to change the playback/recor= ding device to=20 >>> whatever >>> =C2=A0=C2=A0=C2=A0=C2=A0 snd_hda(4) selected. The reason for requiring = virtual_oss is that=20 >>> it has >>> =C2=A0=C2=A0=C2=A0=C2=A0 hot-swapping support, which is necessary for j= ack redirection. >>> =C2=A0=C2=A0=C2=A0=C2=A0 Sponsored by:=C2=A0=C2=A0 The FreeBSD Foundati= on >>> =C2=A0=C2=A0=C2=A0=C2=A0 MFC after:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 2 day= s >>> =C2=A0=C2=A0=C2=A0=C2=A0 Differential Revision:=C2=A0 https://reviews.f= reebsd.org/D50070 >>> --- >>> =C2=A0 sbin/devd/Makefile=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 |=C2=A0 5 +++++ >>> =C2=A0 sbin/devd/devd.conf.5=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 = | 16 +++++++++++++ >>> =C2=A0 sbin/devd/snd.conf=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 | 23 +++++++++++++++++++ >>> =C2=A0 sys/dev/sound/pci/hda/hdaa.c | 53 ++++++++++++++++++++++++++++++= ++=20 >>> +----------- >>> =C2=A0 4 files changed, 84 insertions(+), 13 deletions(-) >>> >>> diff --git a/sbin/devd/Makefile b/sbin/devd/Makefile >>> index 5d5721d16884..f65eee93dd4b 100644 >>> --- a/sbin/devd/Makefile >>> +++ b/sbin/devd/Makefile >>> @@ -51,6 +51,11 @@ NVMEDIR=3D=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= ${DEVDDIR} >>> =C2=A0 NVME+=3D=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 nvmf.conf >>> =C2=A0 NVMEPACKAGE=3D=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nvme-to= ols >>> +CONFGROUPS+=3D=C2=A0=C2=A0=C2=A0 SND >>> +SNDDIR=3D=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ${DEVDDIR} >>> +SND+=3D=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 snd.conf >>> +SNDPACKAGE=3D=C2=A0=C2=A0=C2=A0 snd >>=20 >> Looks like this is causing the package building step of the build to=20 >> look for a src/release/packages/ucl/snd-all.ucl file. >>=20 >> Is it intentional to cause this to produce a new base package? >>=20 >> Looks like in this case an ucl file for the description is needed? >>=20 > > After working around this one locally, I get a similar issue with=20 > virtual_oss missing its ucl file too. > > Just reporting this right away so it is known. That should fix it: https://cgit.freebsd.org/src/commit/?id=3D5cc36854ee63dc695d90a841d9db587be= c67ba24 Sorry for the breakage once again. Christos
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DD6UDSU69WVV.13920N4CQ4LTA>