Re: git: 2ffaca551eaf - main - snd_hda: Implement automatic redirection between associations

From: Christos Margiolis <christos_at_FreeBSD.org>
Date: Wed, 01 Oct 2025 08:28:04 UTC
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/? 
>>> id=2ffaca551eaf32c17f701762ecf29a961cf19aa4
>>>
>>> commit 2ffaca551eaf32c17f701762ecf29a961cf19aa4
>>> Author:     Christos Margiolis <christos@FreeBSD.org>
>>> AuthorDate: 2025-09-30 10:52:44 +0000
>>> Commit:     Christos Margiolis <christos@FreeBSD.org>
>>> CommitDate: 2025-09-30 10:52:44 +0000
>>>
>>>      snd_hda: Implement automatic redirection between associations
>>>      For audio to be redirected to the headphones/headset after 
>>> plugging the
>>>      jack, or back to the speaker/internal mic when unplugging it, the
>>>      speaker and headphone pins need to be part of the same association
>>>      (i.e., the same PCM device). This patch makes it possible to 
>>> redirect
>>>      audio even between different associations, which can reduce the 
>>> need for
>>>      manual pin patching.
>>>      The idea is that we issue a devctl_notify() from within the jack
>>>      detection callback whenever a jack is (un-)plugged to redirect 
>>> audio to
>>>      the appropriate device. Then the snd.conf devd script is 
>>> responsible for
>>>      using virtual_oss to change the playback/recording device to 
>>> whatever
>>>      snd_hda(4) selected. The reason for requiring virtual_oss is that 
>>> it has
>>>      hot-swapping support, which is necessary for jack redirection.
>>>      Sponsored by:   The FreeBSD Foundation
>>>      MFC after:      2 days
>>>      Differential Revision:  https://reviews.freebsd.org/D50070
>>> ---
>>>   sbin/devd/Makefile           |  5 +++++
>>>   sbin/devd/devd.conf.5        | 16 +++++++++++++
>>>   sbin/devd/snd.conf           | 23 +++++++++++++++++++
>>>   sys/dev/sound/pci/hda/hdaa.c | 53 ++++++++++++++++++++++++++++++++ 
>>> +-----------
>>>   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=        ${DEVDDIR}
>>>   NVME+=            nvmf.conf
>>>   NVMEPACKAGE=        nvme-tools
>>> +CONFGROUPS+=    SND
>>> +SNDDIR=        ${DEVDDIR}
>>> +SND+=        snd.conf
>>> +SNDPACKAGE=    snd
>> 
>> Looks like this is causing the package building step of the build to 
>> look for a src/release/packages/ucl/snd-all.ucl file.
>> 
>> Is it intentional to cause this to produce a new base package?
>> 
>> Looks like in this case an ucl file for the description is needed?
>> 
>
> After working around this one locally, I get a similar issue with 
> 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=5cc36854ee63dc695d90a841d9db587bec67ba24

Sorry for the breakage once again.

Christos