ASoC: Fix SND_SOC_ALL_CODECS imply ac97 fallout
diff mbox series

Message ID 20200224112537.14483-1-geert@linux-m68k.org
State Accepted
Commit 5a309875787db47d69610e45f00a727ef9e62aa0
Headers show
Series
  • ASoC: Fix SND_SOC_ALL_CODECS imply ac97 fallout
Related show

Commit Message

Geert Uytterhoeven Feb. 24, 2020, 11:25 a.m. UTC
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.

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
Before commit ea00d95200d02ece ("ASoC: Use imply for
SND_SOC_ALL_CODECS"), SND_SOC_ALL_CODECS used:

    select SND_SOC_WM9705 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW)
    select SND_SOC_WM9712 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW)
    select SND_SOC_WM9713 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW)

but SND_SOC_AC97_BUS_NEW never existed in upstream.
Should there be another dependency>

See also "non-existent SND_SOC_AC97_BUS_NEW (was: Re: [PATCH v9] ASoC:
pxa: switch to new ac97 bus support)"
http://lore.kernel.org/r/CAMuHMdU3uxfBwKd8SkOtZSDV5Ai3CKc3CWRhDy0Cz94T1Hn0iA@mail.gmail.com
---
 sound/soc/codecs/Kconfig | 3 +++
 1 file changed, 3 insertions(+)

Comments

Randy Dunlap Feb. 24, 2020, 4:31 p.m. UTC | #1
On 2/24/20 3:25 AM, 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.
> 
> Reported-by: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>

Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested

Thanks.

> ---
> Before commit ea00d95200d02ece ("ASoC: Use imply for
> SND_SOC_ALL_CODECS"), SND_SOC_ALL_CODECS used:
> 
>     select SND_SOC_WM9705 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW)
>     select SND_SOC_WM9712 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW)
>     select SND_SOC_WM9713 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW)
> 
> but SND_SOC_AC97_BUS_NEW never existed in upstream.
> Should there be another dependency>
> 
> See also "non-existent SND_SOC_AC97_BUS_NEW (was: Re: [PATCH v9] ASoC:
> pxa: switch to new ac97 bus support)"
> http://lore.kernel.org/r/CAMuHMdU3uxfBwKd8SkOtZSDV5Ai3CKc3CWRhDy0Cz94T1Hn0iA@mail.gmail.com
> ---
>  sound/soc/codecs/Kconfig | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
> index 9e9d54e4576ce5ba..a7e89567edbe8b47 100644
> --- a/sound/soc/codecs/Kconfig
> +++ b/sound/soc/codecs/Kconfig
> @@ -1610,16 +1610,19 @@ config SND_SOC_WM9090
>  
>  config SND_SOC_WM9705
>  	tristate
> +	depends on SND_SOC_AC97_BUS
>  	select REGMAP_AC97
>  	select AC97_BUS_COMPAT if AC97_BUS_NEW
>  
>  config SND_SOC_WM9712
>  	tristate
> +	depends on SND_SOC_AC97_BUS
>  	select REGMAP_AC97
>  	select AC97_BUS_COMPAT if AC97_BUS_NEW
>  
>  config SND_SOC_WM9713
>  	tristate
> +	depends on SND_SOC_AC97_BUS
>  	select REGMAP_AC97
>  	select AC97_BUS_COMPAT if AC97_BUS_NEW
>  
>
Guenter Roeck March 3, 2020, 2:34 p.m. UTC | #2
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.

Guenter
Geert Uytterhoeven March 3, 2020, 2:56 p.m. UTC | #3
Hi Günter

On Tue, Mar 3, 2020 at 3:34 PM Guenter Roeck <linux@roeck-us.net> 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.

Gr{oetje,eeting}s,

                        Geert
Guenter Roeck March 3, 2020, 4:14 p.m. UTC | #4
On Tue, Mar 03, 2020 at 03:56:25PM +0100, Geert Uytterhoeven wrote:
> Hi Günter
> 
> On Tue, Mar 3, 2020 at 3:34 PM Guenter Roeck <linux@roeck-us.net> 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.
> 

Doing that results in:

sound/soc/pxa/Kconfig:24:error: recursive dependency detected!
sound/soc/pxa/Kconfig:24:	symbol SND_PXA2XX_SOC_AC97 is selected by SND_PXA2XX_SOC_TOSA
sound/soc/pxa/Kconfig:79:	symbol SND_PXA2XX_SOC_TOSA depends on AC97_BUS
sound/Kconfig:109:	symbol AC97_BUS is selected by SND_SOC_AC97_BUS
sound/soc/Kconfig:26:	symbol SND_SOC_AC97_BUS is selected by SND_PXA2XX_SOC_AC97

Guenter
Robert Jarzmik March 4, 2020, 11:14 p.m. UTC | #5
Geert Uytterhoeven <geert@linux-m68k.org> writes:

> Hi Günter
>
> On Tue, Mar 3, 2020 at 3:34 PM Guenter Roeck <linux@roeck-us.net> 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

Patch
diff mbox series

diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 9e9d54e4576ce5ba..a7e89567edbe8b47 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -1610,16 +1610,19 @@  config SND_SOC_WM9090
 
 config SND_SOC_WM9705
 	tristate
+	depends on SND_SOC_AC97_BUS
 	select REGMAP_AC97
 	select AC97_BUS_COMPAT if AC97_BUS_NEW
 
 config SND_SOC_WM9712
 	tristate
+	depends on SND_SOC_AC97_BUS
 	select REGMAP_AC97
 	select AC97_BUS_COMPAT if AC97_BUS_NEW
 
 config SND_SOC_WM9713
 	tristate
+	depends on SND_SOC_AC97_BUS
 	select REGMAP_AC97
 	select AC97_BUS_COMPAT if AC97_BUS_NEW