[alsa-devel] [PATCH v2] ASoC: imx: Allow using sound with DT descriptions only

Shawn Guo shawn.guo at linaro.org
Fri Jan 10 04:45:04 CET 2014


On Wed, Jan 08, 2014 at 12:43:55PM +0400, Alexander Shiyan wrote:
> This patch allow using generic sound cards/codecs based on DT description.
> 
> Signed-off-by: Alexander Shiyan <shc_work at mail.ru>
> ---
>  sound/soc/fsl/Kconfig   | 25 +++----------------------
>  sound/soc/fsl/Makefile  |  5 ++---
>  sound/soc/fsl/imx-pcm.h |  7 -------
>  3 files changed, 5 insertions(+), 32 deletions(-)
> 
> diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig
> index 1c7b3b7..cf0d5af 100644
> --- a/sound/soc/fsl/Kconfig
> +++ b/sound/soc/fsl/Kconfig
> @@ -7,6 +7,7 @@ config SND_SOC_FSL_SSI
>  
>  config SND_SOC_FSL_SPDIF
>  	tristate
> +	select REGMAP_MMIO
>  
>  config SND_SOC_FSL_UTILS
>  	tristate
> @@ -106,6 +107,8 @@ endif # SND_POWERPC_SOC
>  menuconfig SND_IMX_SOC
>  	tristate "SoC Audio for Freescale i.MX CPUs"
>  	depends on ARCH_MXC || COMPILE_TEST
> +	select SND_SOC_FSL_SSI if OF
> +	select SND_SOC_GENERIC_DMAENGINE_PCM

I'm seeing the following link error when I build a kernel with
SND_IMX_SOC=y and SND_SOC_PHYCORE_AC97=m.

sound/built-in.o: In function `fsl_ssi_probe':
last.c:(.text+0x292c0): undefined reference to `imx_pcm_fiq_init'

Shawn

>  	help
>  	  Say Y or M if you want to add support for codecs attached to
>  	  the i.MX CPUs.
> @@ -119,19 +122,11 @@ config SND_SOC_IMX_PCM_FIQ
>  	tristate
>  	select FIQ
>  
> -config SND_SOC_IMX_PCM_DMA
> -	tristate
> -	select SND_SOC_GENERIC_DMAENGINE_PCM
> -
> -config SND_SOC_IMX_AUDMUX
> -	tristate
> -
>  config SND_MXC_SOC_WM1133_EV1
>  	tristate "Audio on the i.MX31ADS with WM1133-EV1 fitted"
>  	depends on MACH_MX31ADS_WM1133_EV1
>  	select SND_SOC_WM8350
>  	select SND_SOC_IMX_PCM_FIQ
> -	select SND_SOC_IMX_AUDMUX
>  	select SND_SOC_IMX_SSI
>  	help
>  	  Enable support for audio on the i.MX31ADS with the WM1133-EV1
> @@ -141,8 +136,6 @@ config SND_SOC_MX27VIS_AIC32X4
>  	tristate "SoC audio support for Visstrim M10 boards"
>  	depends on MACH_IMX27_VISSTRIM_M10 && I2C
>  	select SND_SOC_TLV320AIC32X4
> -	select SND_SOC_IMX_PCM_DMA
> -	select SND_SOC_IMX_AUDMUX
>  	select SND_SOC_IMX_SSI
>  	help
>  	  Say Y if you want to add support for SoC audio on Visstrim SM10
> @@ -154,7 +147,6 @@ config SND_SOC_PHYCORE_AC97
>  	select SND_SOC_AC97_BUS
>  	select SND_SOC_WM9712
>  	select SND_SOC_IMX_PCM_FIQ
> -	select SND_SOC_IMX_AUDMUX
>  	select SND_SOC_IMX_SSI
>  	help
>  	  Say Y if you want to add support for SoC audio on Phytec phyCORE
> @@ -169,7 +161,6 @@ config SND_SOC_EUKREA_TLV320
>  	depends on I2C
>  	select SND_SOC_TLV320AIC23
>  	select SND_SOC_IMX_PCM_FIQ
> -	select SND_SOC_IMX_AUDMUX
>  	select SND_SOC_IMX_SSI
>  	help
>  	  Enable I2S based access to the TLV320AIC23B codec attached
> @@ -179,9 +170,6 @@ config SND_SOC_IMX_WM8962
>  	tristate "SoC Audio support for i.MX boards with wm8962"
>  	depends on OF && I2C
>  	select SND_SOC_WM8962
> -	select SND_SOC_IMX_PCM_DMA
> -	select SND_SOC_IMX_AUDMUX
> -	select SND_SOC_FSL_SSI
>  	help
>  	  Say Y if you want to add support for SoC audio on an i.MX board with
>  	  a wm8962 codec.
> @@ -190,18 +178,13 @@ config SND_SOC_IMX_SGTL5000
>  	tristate "SoC Audio support for i.MX boards with sgtl5000"
>  	depends on OF && I2C
>  	select SND_SOC_SGTL5000
> -	select SND_SOC_IMX_PCM_DMA
> -	select SND_SOC_IMX_AUDMUX
> -	select SND_SOC_FSL_SSI
>  	help
>  	  Say Y if you want to add support for SoC audio on an i.MX board with
>  	  a sgtl5000 codec.
>  
>  config SND_SOC_IMX_SPDIF
>  	tristate "SoC Audio support for i.MX boards with S/PDIF"
> -	select SND_SOC_IMX_PCM_DMA
>  	select SND_SOC_FSL_SPDIF
> -	select REGMAP_MMIO
>  	help
>  	  SoC Audio support for i.MX boards with S/PDIF
>  	  Say Y if you want to add support for SoC audio on an i.MX board with
> @@ -211,8 +194,6 @@ config SND_SOC_IMX_MC13783
>  	tristate "SoC Audio support for I.MX boards with mc13783"
>  	depends on MFD_MC13XXX && ARM
>  	select SND_SOC_IMX_SSI
> -	select SND_SOC_IMX_AUDMUX
>  	select SND_SOC_MC13783
> -	select SND_SOC_IMX_PCM_DMA
>  
>  endif # SND_IMX_SOC
> diff --git a/sound/soc/fsl/Makefile b/sound/soc/fsl/Makefile
> index aaccbee..5474a0c 100644
> --- a/sound/soc/fsl/Makefile
> +++ b/sound/soc/fsl/Makefile
> @@ -34,11 +34,10 @@ obj-$(CONFIG_SND_MPC52xx_SOC_EFIKA) += efika-audio-fabric.o
>  # i.MX Platform Support
>  snd-soc-imx-ssi-objs := imx-ssi.o
>  snd-soc-imx-audmux-objs := imx-audmux.o
> +obj-$(CONFIG_SND_SOC_IMX_PCM_FIQ) += imx-pcm-fiq.o
>  obj-$(CONFIG_SND_SOC_IMX_SSI) += snd-soc-imx-ssi.o
> -obj-$(CONFIG_SND_SOC_IMX_AUDMUX) += snd-soc-imx-audmux.o
>  
> -obj-$(CONFIG_SND_SOC_IMX_PCM_FIQ) += imx-pcm-fiq.o
> -obj-$(CONFIG_SND_SOC_IMX_PCM_DMA) += imx-pcm-dma.o
> +obj-$(CONFIG_SND_IMX_SOC) += imx-pcm-dma.o snd-soc-imx-audmux.o
>  
>  # i.MX Machine Support
>  snd-soc-eukrea-tlv320-objs := eukrea-tlv320.o
> diff --git a/sound/soc/fsl/imx-pcm.h b/sound/soc/fsl/imx-pcm.h
> index c79cb27..a1364cb 100644
> --- a/sound/soc/fsl/imx-pcm.h
> +++ b/sound/soc/fsl/imx-pcm.h
> @@ -38,14 +38,7 @@ struct imx_pcm_fiq_params {
>  	struct snd_dmaengine_dai_dma_data *dma_params_tx;
>  };
>  
> -#if IS_ENABLED(CONFIG_SND_SOC_IMX_PCM_DMA)
>  int imx_pcm_dma_init(struct platform_device *pdev);
> -#else
> -static inline int imx_pcm_dma_init(struct platform_device *pdev)
> -{
> -	return -ENODEV;
> -}
> -#endif
>  
>  #if IS_ENABLED(CONFIG_SND_SOC_IMX_PCM_FIQ)
>  int imx_pcm_fiq_init(struct platform_device *pdev,
> -- 
> 1.8.3.2
> 



More information about the Alsa-devel mailing list