Re: [GIT PULL] sound updates for 6.17-rc1

From: Linus Torvalds
Date: Wed Jul 30 2025 - 13:22:04 EST


On Wed, 30 Jul 2025 at 09:50, Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> And no, the answer is *not* "make everything enabled by default". If
> somebody has a working configuration for their setup, new subdrivers
> shouldn't be enabled by "make oldconfig", because clearly those new
> drivers aren't relevant.
>
> So no - not "default y".

Ahh. I looked closed - I should have done that earlier. It looks like
this was just a split, not a rename like I thought earlier.

But a plain 'default y' is still the wrong thing to do because you do
*not* want to enable this if people didn't have CODEC_HDMI enabled
originally. So it would have to be a

depends on SND_HDA_CODEC_HDMI
default y

But then you couldn't disable the generic code.

What *might* work is having both

default SND_HDA_CODEC_HDMI
select SND_HDA_CODEC_HDMI

which looks confusing, but should mean that if SND_HDA_CODEC_HDMI was
selected, the sub-option is on by default

It looks pretty iffy, honestly, but I _think_ i tworks.

I do think that the right model is to keep the old name for the old
functionality, and have a structure something like

config SND_HDA_CODEC_HDMI
tristate "Enable all HD-audio HDMI drivers"
select SND_HDA_CODEC_HDMI_INTEL
select SND_HDA_CODEC_HDMI_...

And then the new common hdmi code should have a mew and *different*
Kconfig option name that the sub-drivers select (so
"SND_HDA_CODEC_HDMI_COMMON" or whatever).

on't re-use an old name for some new fucntionality, unless you've
waited at least a full release or two for peoples kernel configs to
have been refreshed to the new setup.

With *that* kind of structure, you get

- people who didn't use to have this enabled still don't have it
enabled by default, so "make oldconfig" does the right thing

- people who did have SND_HDA_CODEC_HDMI enabled see no difference:
they still get all versions

- you can now decide to disable SND_HDA_CODEC_HDMI, and then enable
the sub-drivers individually

so that would seem to have full functionality, and avoids the
confusion of having the that combination of "select" and "default".

Linus