Skip site navigation (1)Skip section navigation (2)
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>