Enclose the options in if SND_ATMEL_SOC ... endif to remove the dependency.
Also remove the useless description for SND_ATMEL_SOC_SSC.
Signed-off-by: Alexandre Belloni <[email protected]>
---
sound/soc/atmel/Kconfig | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/sound/soc/atmel/Kconfig b/sound/soc/atmel/Kconfig
index e7d08806f3e9..93abe4e6d596 100644
--- a/sound/soc/atmel/Kconfig
+++ b/sound/soc/atmel/Kconfig
@@ -6,27 +6,22 @@ config SND_ATMEL_SOC
the ATMEL SSC interface. You will also need
to select the audio interfaces to support below.
+if SND_ATMEL_SOC
+
config SND_ATMEL_SOC_PDC
tristate
- depends on SND_ATMEL_SOC
config SND_ATMEL_SOC_DMA
tristate
- depends on SND_ATMEL_SOC
select SND_SOC_GENERIC_DMAENGINE_PCM
config SND_ATMEL_SOC_SSC
tristate
- depends on SND_ATMEL_SOC
- help
- Say Y or M if you want to add support for codecs the
- ATMEL SSC interface. You will also needs to select the individual
- machine drivers to support below.
config SND_AT91_SOC_SAM9G20_WM8731
tristate "SoC Audio support for WM8731-based At91sam9g20 evaluation board"
depends on ARCH_AT91 || COMPILE_TEST
- depends on ATMEL_SSC && SND_ATMEL_SOC && SND_SOC_I2C_AND_SPI
+ depends on ATMEL_SSC && SND_SOC_I2C_AND_SPI
select SND_ATMEL_SOC_PDC
select SND_ATMEL_SOC_SSC
select SND_SOC_WM8731
@@ -37,7 +32,7 @@ config SND_AT91_SOC_SAM9G20_WM8731
config SND_ATMEL_SOC_WM8904
tristate "Atmel ASoC driver for boards using WM8904 codec"
depends on ARCH_AT91 || COMPILE_TEST
- depends on ATMEL_SSC && SND_ATMEL_SOC && I2C
+ depends on ATMEL_SSC && I2C
select SND_ATMEL_SOC_SSC
select SND_ATMEL_SOC_DMA
select SND_SOC_WM8904
@@ -48,10 +43,11 @@ config SND_ATMEL_SOC_WM8904
config SND_AT91_SOC_SAM9X5_WM8731
tristate "SoC Audio support for WM8731-based at91sam9x5 board"
depends on ARCH_AT91 || COMPILE_TEST
- depends on ATMEL_SSC && SND_ATMEL_SOC && SND_SOC_I2C_AND_SPI
+ depends on ATMEL_SSC && SND_SOC_I2C_AND_SPI
select SND_ATMEL_SOC_SSC
select SND_ATMEL_SOC_DMA
select SND_SOC_WM8731
help
Say Y if you want to add support for audio SoC on an
at91sam9x5 based board that is using WM8731 codec.
+endif
--
2.1.4
It is currently possible to have CONFIG_SND_ATMEL_SOC_SSC=y with either
CONFIG_SND_ATMEL_SOC_PDC=m or CONFIG_SND_ATMEL_SOC_DMA=m. This results in a
driver that compiles but does not link with this kind of error:
sound/built-in.o: In function `atmel_ssc_set_audio':
(.text+0x87d90): undefined reference to `atmel_pcm_pdc_platform_register'
sound/built-in.o: In function `atmel_ssc_put_audio':
(.text+0x8879a): undefined reference to `atmel_pcm_pdc_platform_unregister'
Solve that by compiling the selected PCM driver (PDC, DMA or both) in the
Atmel SSC DAI driver.
Reported-by: Randy Dunlap <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
---
sound/soc/atmel/Kconfig | 4 ++--
sound/soc/atmel/Makefile | 8 +++-----
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/sound/soc/atmel/Kconfig b/sound/soc/atmel/Kconfig
index 93abe4e6d596..c3152072d682 100644
--- a/sound/soc/atmel/Kconfig
+++ b/sound/soc/atmel/Kconfig
@@ -9,10 +9,10 @@ config SND_ATMEL_SOC
if SND_ATMEL_SOC
config SND_ATMEL_SOC_PDC
- tristate
+ bool
config SND_ATMEL_SOC_DMA
- tristate
+ bool
select SND_SOC_GENERIC_DMAENGINE_PCM
config SND_ATMEL_SOC_SSC
diff --git a/sound/soc/atmel/Makefile b/sound/soc/atmel/Makefile
index b327e5cc8de3..4fa7ac91f972 100644
--- a/sound/soc/atmel/Makefile
+++ b/sound/soc/atmel/Makefile
@@ -1,10 +1,8 @@
# AT91 Platform Support
-snd-soc-atmel-pcm-pdc-objs := atmel-pcm-pdc.o
-snd-soc-atmel-pcm-dma-objs := atmel-pcm-dma.o
-snd-soc-atmel_ssc_dai-objs := atmel_ssc_dai.o
+snd-soc-atmel-pcm-$(CONFIG_SND_ATMEL_SOC_PDC) := atmel-pcm-pdc.o
+snd-soc-atmel-pcm-$(CONFIG_SND_ATMEL_SOC_DMA) += atmel-pcm-dma.o
+snd-soc-atmel_ssc_dai-objs := atmel_ssc_dai.o $(snd-soc-atmel-pcm-y)
-obj-$(CONFIG_SND_ATMEL_SOC_PDC) += snd-soc-atmel-pcm-pdc.o
-obj-$(CONFIG_SND_ATMEL_SOC_DMA) += snd-soc-atmel-pcm-dma.o
obj-$(CONFIG_SND_ATMEL_SOC_SSC) += snd-soc-atmel_ssc_dai.o
# AT91 Machine Support
--
2.1.4
On Tue, May 26, 2015 at 12:04:18AM +0200, Alexandre Belloni wrote:
> Enclose the options in if SND_ATMEL_SOC ... endif to remove the dependency.
> Also remove the useless description for SND_ATMEL_SOC_SSC.
Applied, thanks.
On Tue, May 26, 2015 at 12:04:19AM +0200, Alexandre Belloni wrote:
> It is currently possible to have CONFIG_SND_ATMEL_SOC_SSC=y with either
> CONFIG_SND_ATMEL_SOC_PDC=m or CONFIG_SND_ATMEL_SOC_DMA=m. This results in a
> driver that compiles but does not link with this kind of error:
Applied, thanks.
Le 26/05/2015 00:04, Alexandre Belloni a ?crit :
> Enclose the options in if SND_ATMEL_SOC ... endif to remove the dependency.
> Also remove the useless description for SND_ATMEL_SOC_SSC.
>
> Signed-off-by: Alexandre Belloni <[email protected]>
For the record:
Acked-by: Nicolas Ferre <[email protected]>
> ---
> sound/soc/atmel/Kconfig | 16 ++++++----------
> 1 file changed, 6 insertions(+), 10 deletions(-)
>
> diff --git a/sound/soc/atmel/Kconfig b/sound/soc/atmel/Kconfig
> index e7d08806f3e9..93abe4e6d596 100644
> --- a/sound/soc/atmel/Kconfig
> +++ b/sound/soc/atmel/Kconfig
> @@ -6,27 +6,22 @@ config SND_ATMEL_SOC
> the ATMEL SSC interface. You will also need
> to select the audio interfaces to support below.
>
> +if SND_ATMEL_SOC
> +
> config SND_ATMEL_SOC_PDC
> tristate
> - depends on SND_ATMEL_SOC
>
> config SND_ATMEL_SOC_DMA
> tristate
> - depends on SND_ATMEL_SOC
> select SND_SOC_GENERIC_DMAENGINE_PCM
>
> config SND_ATMEL_SOC_SSC
> tristate
> - depends on SND_ATMEL_SOC
> - help
> - Say Y or M if you want to add support for codecs the
> - ATMEL SSC interface. You will also needs to select the individual
> - machine drivers to support below.
>
> config SND_AT91_SOC_SAM9G20_WM8731
> tristate "SoC Audio support for WM8731-based At91sam9g20 evaluation board"
> depends on ARCH_AT91 || COMPILE_TEST
> - depends on ATMEL_SSC && SND_ATMEL_SOC && SND_SOC_I2C_AND_SPI
> + depends on ATMEL_SSC && SND_SOC_I2C_AND_SPI
> select SND_ATMEL_SOC_PDC
> select SND_ATMEL_SOC_SSC
> select SND_SOC_WM8731
> @@ -37,7 +32,7 @@ config SND_AT91_SOC_SAM9G20_WM8731
> config SND_ATMEL_SOC_WM8904
> tristate "Atmel ASoC driver for boards using WM8904 codec"
> depends on ARCH_AT91 || COMPILE_TEST
> - depends on ATMEL_SSC && SND_ATMEL_SOC && I2C
> + depends on ATMEL_SSC && I2C
> select SND_ATMEL_SOC_SSC
> select SND_ATMEL_SOC_DMA
> select SND_SOC_WM8904
> @@ -48,10 +43,11 @@ config SND_ATMEL_SOC_WM8904
> config SND_AT91_SOC_SAM9X5_WM8731
> tristate "SoC Audio support for WM8731-based at91sam9x5 board"
> depends on ARCH_AT91 || COMPILE_TEST
> - depends on ATMEL_SSC && SND_ATMEL_SOC && SND_SOC_I2C_AND_SPI
> + depends on ATMEL_SSC && SND_SOC_I2C_AND_SPI
> select SND_ATMEL_SOC_SSC
> select SND_ATMEL_SOC_DMA
> select SND_SOC_WM8731
> help
> Say Y if you want to add support for audio SoC on an
> at91sam9x5 based board that is using WM8731 codec.
> +endif
>
--
Nicolas Ferre
Le 26/05/2015 00:04, Alexandre Belloni a ?crit :
> It is currently possible to have CONFIG_SND_ATMEL_SOC_SSC=y with either
> CONFIG_SND_ATMEL_SOC_PDC=m or CONFIG_SND_ATMEL_SOC_DMA=m. This results in a
> driver that compiles but does not link with this kind of error:
>
> sound/built-in.o: In function `atmel_ssc_set_audio':
> (.text+0x87d90): undefined reference to `atmel_pcm_pdc_platform_register'
> sound/built-in.o: In function `atmel_ssc_put_audio':
> (.text+0x8879a): undefined reference to `atmel_pcm_pdc_platform_unregister'
>
> Solve that by compiling the selected PCM driver (PDC, DMA or both) in the
> Atmel SSC DAI driver.
>
> Reported-by: Randy Dunlap <[email protected]>
>
> Signed-off-by: Alexandre Belloni <[email protected]>
For the record:
Acked-by: Nicolas Ferre <[email protected]>
> ---
> sound/soc/atmel/Kconfig | 4 ++--
> sound/soc/atmel/Makefile | 8 +++-----
> 2 files changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/sound/soc/atmel/Kconfig b/sound/soc/atmel/Kconfig
> index 93abe4e6d596..c3152072d682 100644
> --- a/sound/soc/atmel/Kconfig
> +++ b/sound/soc/atmel/Kconfig
> @@ -9,10 +9,10 @@ config SND_ATMEL_SOC
> if SND_ATMEL_SOC
>
> config SND_ATMEL_SOC_PDC
> - tristate
> + bool
>
> config SND_ATMEL_SOC_DMA
> - tristate
> + bool
> select SND_SOC_GENERIC_DMAENGINE_PCM
>
> config SND_ATMEL_SOC_SSC
> diff --git a/sound/soc/atmel/Makefile b/sound/soc/atmel/Makefile
> index b327e5cc8de3..4fa7ac91f972 100644
> --- a/sound/soc/atmel/Makefile
> +++ b/sound/soc/atmel/Makefile
> @@ -1,10 +1,8 @@
> # AT91 Platform Support
> -snd-soc-atmel-pcm-pdc-objs := atmel-pcm-pdc.o
> -snd-soc-atmel-pcm-dma-objs := atmel-pcm-dma.o
> -snd-soc-atmel_ssc_dai-objs := atmel_ssc_dai.o
> +snd-soc-atmel-pcm-$(CONFIG_SND_ATMEL_SOC_PDC) := atmel-pcm-pdc.o
> +snd-soc-atmel-pcm-$(CONFIG_SND_ATMEL_SOC_DMA) += atmel-pcm-dma.o
> +snd-soc-atmel_ssc_dai-objs := atmel_ssc_dai.o $(snd-soc-atmel-pcm-y)
>
> -obj-$(CONFIG_SND_ATMEL_SOC_PDC) += snd-soc-atmel-pcm-pdc.o
> -obj-$(CONFIG_SND_ATMEL_SOC_DMA) += snd-soc-atmel-pcm-dma.o
> obj-$(CONFIG_SND_ATMEL_SOC_SSC) += snd-soc-atmel_ssc_dai.o
>
> # AT91 Machine Support
>
--
Nicolas Ferre
On Tuesday 26 May 2015 00:04:19 Alexandre Belloni wrote:
> index b327e5cc8de3..4fa7ac91f972 100644
> --- a/sound/soc/atmel/Makefile
> +++ b/sound/soc/atmel/Makefile
> @@ -1,10 +1,8 @@
> # AT91 Platform Support
> -snd-soc-atmel-pcm-pdc-objs := atmel-pcm-pdc.o
> -snd-soc-atmel-pcm-dma-objs := atmel-pcm-dma.o
> -snd-soc-atmel_ssc_dai-objs := atmel_ssc_dai.o
> +snd-soc-atmel-pcm-$(CONFIG_SND_ATMEL_SOC_PDC) := atmel-pcm-pdc.o
> +snd-soc-atmel-pcm-$(CONFIG_SND_ATMEL_SOC_DMA) += atmel-pcm-dma.o
> +snd-soc-atmel_ssc_dai-objs := atmel_ssc_dai.o $(snd-soc-atmel-pcm-y)
While technically correct, you could have written this (slightly)
simpler as:
snd-soc-atmel_ssc_dai-objs := atmel_ssc_dai.o
snd-soc-atmel-ssc_dai-$(CONFIG_SND_ATMEL_SOC_PDC) += atmel-pcm-pdc.o
snd-soc-atmel-ssc_dai-$(CONFIG_SND_ATMEL_SOC_DMA) += atmel-pcm-dma.o
No need to change the patch again after it's applied now.
Arnd