Re: [PATCH] ASoC: Fix SND_SOC_ALL_CODECS imply ac97 fallout

From: Robert Jarzmik
Date: Wed Mar 04 2020 - 18:14:45 EST


Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> writes:

> Hi GÃnter
>
> On Tue, Mar 3, 2020 at 3:34 PM Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
>> On Mon, Feb 24, 2020 at 12:25:37PM +0100, Geert Uytterhoeven wrote:
>> > On i386 randconfig:
>> >
>> > sound/soc/codecs/wm9705.o: In function `wm9705_soc_resume':
>> > wm9705.c:(.text+0x128): undefined reference to `snd_ac97_reset'
>> > sound/soc/codecs/wm9712.o: In function `wm9712_soc_resume':
>> > wm9712.c:(.text+0x2d1): undefined reference to `snd_ac97_reset'
>> > sound/soc/codecs/wm9713.o: In function `wm9713_soc_resume':
>> > wm9713.c:(.text+0x820): undefined reference to `snd_ac97_reset'
>> >
>> > Fix this by adding the missing dependencies on SND_SOC_AC97_BUS.
>> >
>>
>> With this patch applied, arm:pxa_defconfig reports a variety of unmet
>> SND_SOC dependencies, and it fails to build.
>>
>> ERROR: "snd_ac97_reset" [sound/soc/codecs/snd-soc-wm9713.ko] undefined!
>> ERROR: "snd_ac97_reset" [sound/soc/codecs/snd-soc-wm9712.ko] undefined!
>> ERROR: "snd_ac97_reset" [sound/soc/codecs/snd-soc-wm9705.ko] undefined!
>>
>> Reverting this patch fixes the problem.
>
> Should SND_PXA2XX_SOC_AC97 in sound/soc/pxa/Kconfig select
> SND_SOC_AC97_BUS instead of SND_SOC_AC97_BUS_NEW?
> The latter does not exist.
Hi Geert,

The answer is no, PXA is now specifically ported to work with the new AC97 bus
implementation, ie. AC97_BUS_NEW=y as in sound/ac97/.

The 2 implementations of AC97 bus, ie. CONFIG_AC97_BUS and CONFIG_AC97_BUS_NEW
are exclusive, they cannot coexist in the same kernel AFAIR.

Sorry for the late reply on this thread, but I moved house lately and I'm quite
busy, so my answers are delayed.

As a side note, I've seen somewhere in the patches this :
SND_SOC_WM971{2,3} depends on SND_SOC_AC97_BUS. This looks wrong to me, as it
implies that a wolfson wm97xx sound driver can only exist with
CONFIG_AC97_BUS=y, which is false, because it can exist with
CONFIG_AC97_BUS_NEW=y.

I also saw someone saying the CONFIG_SND_SOC_AC97_BUS_NEW didn't exist; this is
true, most likely because I forgot it when I created the new AC97 bus. I'd think
the natural fix would be to add CONFIG_SND_SOC_AC97_BUS_NEW just after his twin
definition in sound/soc/Kconfig, but I might be wrong ...

Cheers.

--
Robert