[alsa-devel] [PATCH V1 0/3] fix build error/warning in sound/soc/fsl
This series patch is for fixing build error/waring in sound/soc/fsl
Shengjiu Wang (3): ASoC: fsl: Kconfig: remove dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA ASoC: fsl-asoc-card: Fix build warning for maybe-uninitialized ASoC: fsl: fsl-asoc-card: Select SND_SOC_IMX_AUDMUX
sound/soc/fsl/Kconfig | 9 +++++---- sound/soc/fsl/fsl-asoc-card.c | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-)
Build kernel with SND_SOC_IMC_PCM_DMA=m && SND_IMX_SOC=n leads the following error:
sound/built-in.o: In function `fsl_sai_probe':
fsl_sai.c:(.text+0x5f662): undefined reference to `imx_pcm_dma_init'
sound/built-in.o: In function `fsl_esai_probe':
fsl_esai.c:(.text+0x6044b): undefined reference to `imx_pcm_dma_init'
Most cpu driver in soc/fsl has use the function 'imx_pcm_dma_init' which is defined in imx-pcm-dma.c, so need to select SND_SOC_IMX_PCM_DMA, but it depends on SND_IMX_SOC, if SND_IMX_SOC=n, then SND_SOC_IMX_PCM_DMA will not be selected. So remove the dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA.
Reported-by: kbuild test robot fengguang.wu@intel.com Signed-off-by: Shengjiu Wang shengjiu.wang@freescale.com --- sound/soc/fsl/Kconfig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig index 5ae777a..3a3732c 100644 --- a/sound/soc/fsl/Kconfig +++ b/sound/soc/fsl/Kconfig @@ -15,7 +15,7 @@ config SND_SOC_FSL_ASRC config SND_SOC_FSL_SAI tristate "Synchronous Audio Interface (SAI) module support" select REGMAP_MMIO - select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n + select SND_SOC_IMX_PCM_DMA select SND_SOC_GENERIC_DMAENGINE_PCM help Say Y if you want to add Synchronous Audio Interface (SAI) @@ -25,7 +25,7 @@ config SND_SOC_FSL_SAI
config SND_SOC_FSL_SSI tristate "Synchronous Serial Interface module support" - select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n + select SND_SOC_IMX_PCM_DMA select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC) select REGMAP_MMIO help @@ -37,7 +37,7 @@ config SND_SOC_FSL_SSI config SND_SOC_FSL_SPDIF tristate "Sony/Philips Digital Interface module support" select REGMAP_MMIO - select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n + select SND_SOC_IMX_PCM_DMA select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC) help Say Y if you want to add Sony/Philips Digital Interface (SPDIF) @@ -48,7 +48,7 @@ config SND_SOC_FSL_SPDIF config SND_SOC_FSL_ESAI tristate "Enhanced Serial Audio Interface (ESAI) module support" select REGMAP_MMIO - select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n + select SND_SOC_IMX_PCM_DMA help Say Y if you want to add Enhanced Synchronous Audio Interface (ESAI) support for the Freescale CPUs.
On 08/18/2014 10:38 AM, Shengjiu Wang wrote:
Build kernel with SND_SOC_IMC_PCM_DMA=m && SND_IMX_SOC=n leads the following error:
sound/built-in.o: In function `fsl_sai_probe':
fsl_sai.c:(.text+0x5f662): undefined reference to `imx_pcm_dma_init'
sound/built-in.o: In function `fsl_esai_probe':
fsl_esai.c:(.text+0x6044b): undefined reference to `imx_pcm_dma_init'
Most cpu driver in soc/fsl has use the function 'imx_pcm_dma_init' which is defined in imx-pcm-dma.c, so need to select SND_SOC_IMX_PCM_DMA, but it depends on SND_IMX_SOC, if SND_IMX_SOC=n, then SND_SOC_IMX_PCM_DMA will not be selected. So remove the dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA.
Reported-by: kbuild test robot fengguang.wu@intel.com Signed-off-by: Shengjiu Wang shengjiu.wang@freescale.com
Those if conditions where just added[1] by Arnd to avoid other build failures. So just removing them again makes little sense.
As far as I can see imx_pcm_dma_init() should be stubbed out when SND_SOC_IMX_PCM_DMA is not selected. So what's going on here?
[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ff...
On Mon, Aug 18, 2014 at 06:52:46PM +0200, Lars-Peter Clausen wrote:
On 08/18/2014 10:38 AM, Shengjiu Wang wrote:
Build kernel with SND_SOC_IMC_PCM_DMA=m && SND_IMX_SOC=n leads the following error:
sound/built-in.o: In function `fsl_sai_probe':
fsl_sai.c:(.text+0x5f662): undefined reference to `imx_pcm_dma_init'
sound/built-in.o: In function `fsl_esai_probe':
fsl_esai.c:(.text+0x6044b): undefined reference to `imx_pcm_dma_init'
Most cpu driver in soc/fsl has use the function 'imx_pcm_dma_init' which is defined in imx-pcm-dma.c, so need to select SND_SOC_IMX_PCM_DMA, but it depends on SND_IMX_SOC, if SND_IMX_SOC=n, then SND_SOC_IMX_PCM_DMA will not be selected. So remove the dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA.
Reported-by: kbuild test robot fengguang.wu@intel.com Signed-off-by: Shengjiu Wang shengjiu.wang@freescale.com
Those if conditions where just added[1] by Arnd to avoid other build failures. So just removing them again makes little sense.
As far as I can see imx_pcm_dma_init() should be stubbed out when SND_SOC_IMX_PCM_DMA is not selected. So what's going on here?
[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ff...
Lars-Peter Clausen & Arnd
The purpose of Arnd's patch is same with me, which is to resolve the build error when SND_SOC_IMX_PCM_DMA=m & SND_SOC_FSL_SSI/SAI/ESAI/SPDIF=y, the error is "undefined reference to `imx_pcm_dma_init'". But Arnd's patch didn't involve this situation that SND_IMX_SOC=n & SND_SOC_IMX_PCM_DMA=m.
Currently I think out a solution for this issue is to change
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
to
depends on SND_SOC_IMX_PCM_DMA != m
How do you think about this?
best regards Wang shengjiu
Subject: Re: [alsa-devel] [PATCH V1 1/3] ASoC: fsl: Kconfig: remove dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA
On Mon, Aug 18, 2014 at 06:52:46PM +0200, Lars-Peter Clausen wrote:
On 08/18/2014 10:38 AM, Shengjiu Wang wrote:
Build kernel with SND_SOC_IMC_PCM_DMA=m && SND_IMX_SOC=n leads the
following
error:
sound/built-in.o: In function `fsl_sai_probe':
fsl_sai.c:(.text+0x5f662): undefined reference to `imx_pcm_dma_init'
sound/built-in.o: In function `fsl_esai_probe':
fsl_esai.c:(.text+0x6044b): undefined reference to `imx_pcm_dma_init'
Most cpu driver in soc/fsl has use the function 'imx_pcm_dma_init' which is defined in imx-pcm-dma.c, so need to select SND_SOC_IMX_PCM_DMA, but it
depends
on SND_IMX_SOC, if SND_IMX_SOC=n, then SND_SOC_IMX_PCM_DMA will not be selected. So remove the dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA.
Reported-by: kbuild test robot fengguang.wu@intel.com Signed-off-by: Shengjiu Wang shengjiu.wang@freescale.com
Those if conditions where just added[1] by Arnd to avoid other build failures. So just removing them again makes little sense.
As far as I can see imx_pcm_dma_init() should be stubbed out when SND_SOC_IMX_PCM_DMA is not selected. So what's going on here?
[1]
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ff... 260f79dc0436604452bccd449bffd25ebafb
Lars-Peter Clausen & Arnd
The purpose of Arnd's patch is same with me, which is to resolve the build error when SND_SOC_IMX_PCM_DMA=m & SND_SOC_FSL_SSI/SAI/ESAI/SPDIF=y, the error is "undefined reference to `imx_pcm_dma_init'". But Arnd's patch didn't involve this situation that SND_IMX_SOC=n & SND_SOC_IMX_PCM_DMA=m.
Currently I think out a solution for this issue is to change
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
to
depends on SND_SOC_IMX_PCM_DMA != m
How do you think about this?
What will happen if to build both SAI/ESAI and IMX_PCM_DMA as modules at the same time ?
Thanks,
BRs Xiubo
best regards Wang shengjiu
On Tue, Aug 19, 2014 at 04:13:15PM +0800, Xiubo Li-B47053 wrote:
Subject: Re: [alsa-devel] [PATCH V1 1/3] ASoC: fsl: Kconfig: remove dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA
On Mon, Aug 18, 2014 at 06:52:46PM +0200, Lars-Peter Clausen wrote:
On 08/18/2014 10:38 AM, Shengjiu Wang wrote:
Build kernel with SND_SOC_IMC_PCM_DMA=m && SND_IMX_SOC=n leads the
following
error:
sound/built-in.o: In function `fsl_sai_probe':
fsl_sai.c:(.text+0x5f662): undefined reference to `imx_pcm_dma_init'
sound/built-in.o: In function `fsl_esai_probe':
fsl_esai.c:(.text+0x6044b): undefined reference to `imx_pcm_dma_init'
Most cpu driver in soc/fsl has use the function 'imx_pcm_dma_init' which is defined in imx-pcm-dma.c, so need to select SND_SOC_IMX_PCM_DMA, but it
depends
on SND_IMX_SOC, if SND_IMX_SOC=n, then SND_SOC_IMX_PCM_DMA will not be selected. So remove the dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA.
Reported-by: kbuild test robot fengguang.wu@intel.com Signed-off-by: Shengjiu Wang shengjiu.wang@freescale.com
Those if conditions where just added[1] by Arnd to avoid other build failures. So just removing them again makes little sense.
As far as I can see imx_pcm_dma_init() should be stubbed out when SND_SOC_IMX_PCM_DMA is not selected. So what's going on here?
[1]
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ff... 260f79dc0436604452bccd449bffd25ebafb
Lars-Peter Clausen & Arnd
The purpose of Arnd's patch is same with me, which is to resolve the build error when SND_SOC_IMX_PCM_DMA=m & SND_SOC_FSL_SSI/SAI/ESAI/SPDIF=y, the error is "undefined reference to `imx_pcm_dma_init'". But Arnd's patch didn't involve this situation that SND_IMX_SOC=n & SND_SOC_IMX_PCM_DMA=m.
Currently I think out a solution for this issue is to change
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
to
depends on SND_SOC_IMX_PCM_DMA != m
How do you think about this?
What will happen if to build both SAI/ESAI and IMX_PCM_DMA as modules at the same time ?
Thanks,
BRs Xiubo
I didn't find error/warning when SAI/ESAI and IMX_PCM_DMA are as modules. The build is successful.
best regards Wang shengjiu
Lars-Peter Clausen & Arnd
The purpose of Arnd's patch is same with me, which is to resolve the build error when SND_SOC_IMX_PCM_DMA=m & SND_SOC_FSL_SSI/SAI/ESAI/SPDIF=y, the error is "undefined reference to `imx_pcm_dma_init'". But Arnd's patch didn't involve this situation that SND_IMX_SOC=n & SND_SOC_IMX_PCM_DMA=m.
Currently I think out a solution for this issue is to change
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
to
depends on SND_SOC_IMX_PCM_DMA != m
How do you think about this?
What will happen if to build both SAI/ESAI and IMX_PCM_DMA as modules at the
same
time ?
Thanks,
BRs Xiubo
I didn't find error/warning when SAI/ESAI and IMX_PCM_DMA are as modules. The build is successful.
Yes, but if IMX_PCM_DMA == m, the SAI/ESAI will be invisible in menuconfig.... Does it matter here ?
BRs Xiubo
best regards Wang shengjiu
How about the following :
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig index 5ae777a..d42f18c 100644 --- a/sound/soc/fsl/Kconfig +++ b/sound/soc/fsl/Kconfig @@ -15,7 +15,7 @@ config SND_SOC_FSL_ASRC config SND_SOC_FSL_SAI tristate "Synchronous Audio Interface (SAI) module support" select REGMAP_MMIO - select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n + select SND_SOC_IMX_PCM_DMA select SND_SOC_GENERIC_DMAENGINE_PCM help Say Y if you want to add Synchronous Audio Interface (SAI) @@ -25,7 +25,7 @@ config SND_SOC_FSL_SAI
config SND_SOC_FSL_SSI tristate "Synchronous Serial Interface module support" - select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n + select SND_SOC_IMX_PCM_DMA select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC) select REGMAP_MMIO help @@ -37,7 +37,7 @@ config SND_SOC_FSL_SSI config SND_SOC_FSL_SPDIF tristate "Sony/Philips Digital Interface module support" select REGMAP_MMIO - select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n + select SND_SOC_IMX_PCM_DMA select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC) help Say Y if you want to add Sony/Philips Digital Interface (SPDIF) @@ -48,7 +48,7 @@ config SND_SOC_FSL_SPDIF config SND_SOC_FSL_ESAI tristate "Enhanced Serial Audio Interface (ESAI) module support" select REGMAP_MMIO - select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n + select SND_SOC_IMX_PCM_DMA help Say Y if you want to add Enhanced Synchronous Audio Interface (ESAI) support for the Freescale CPUs. @@ -76,6 +76,7 @@ config SND_SOC_FSL_ASOC_CARD
config SND_SOC_IMX_PCM_DMA tristate + depends on SND_IMX_SOC select SND_SOC_GENERIC_DMAENGINE_PCM
config SND_SOC_IMX_AUDMUX
Thanks,
BRs Xiubo
-----Original Message----- From: Shengjiu Wang [mailto:shengjiu.wang@freescale.com] Sent: Tuesday, August 19, 2014 4:21 PM To: Xiubo Li-B47053 Cc: Lars-Peter Clausen; lgirdwood@gmail.com; broonie@kernel.org; perex@perex.cz; tiwai@suse.de; nicoleotsuka@gmail.com; shc_work@mail.ru; Estevam Fabio-R49496; xobs@kosagi.com; arnd@arndb.de; sfr@canb.auug.org.au; timur@tabi.org; alsa-devel@alsa-project.org; linuxppc-dev@lists.ozlabs.org; linux-kernel@vger.kernel.org Subject: Re: [alsa-devel] [PATCH V1 1/3] ASoC: fsl: Kconfig: remove dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA
On Tue, Aug 19, 2014 at 04:13:15PM +0800, Xiubo Li-B47053 wrote:
Subject: Re: [alsa-devel] [PATCH V1 1/3] ASoC: fsl: Kconfig: remove
dependence
of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA
On Mon, Aug 18, 2014 at 06:52:46PM +0200, Lars-Peter Clausen wrote:
On 08/18/2014 10:38 AM, Shengjiu Wang wrote:
Build kernel with SND_SOC_IMC_PCM_DMA=m && SND_IMX_SOC=n leads the
following
error:
sound/built-in.o: In function `fsl_sai_probe':
>fsl_sai.c:(.text+0x5f662): undefined reference to `imx_pcm_dma_init'
sound/built-in.o: In function `fsl_esai_probe':
>fsl_esai.c:(.text+0x6044b): undefined reference to `imx_pcm_dma_init'
Most cpu driver in soc/fsl has use the function 'imx_pcm_dma_init'
which is
defined in imx-pcm-dma.c, so need to select SND_SOC_IMX_PCM_DMA, but it
depends
on SND_IMX_SOC, if SND_IMX_SOC=n, then SND_SOC_IMX_PCM_DMA will not be selected. So remove the dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA.
Reported-by: kbuild test robot fengguang.wu@intel.com Signed-off-by: Shengjiu Wang shengjiu.wang@freescale.com
Those if conditions where just added[1] by Arnd to avoid other build failures. So just removing them again makes little sense.
As far as I can see imx_pcm_dma_init() should be stubbed out when SND_SOC_IMX_PCM_DMA is not selected. So what's going on here?
[1]
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ff...
260f79dc0436604452bccd449bffd25ebafb
Lars-Peter Clausen & Arnd
The purpose of Arnd's patch is same with me, which is to resolve the build error when SND_SOC_IMX_PCM_DMA=m & SND_SOC_FSL_SSI/SAI/ESAI/SPDIF=y, the error is "undefined reference to `imx_pcm_dma_init'". But Arnd's patch didn't involve this situation that SND_IMX_SOC=n & SND_SOC_IMX_PCM_DMA=m.
Currently I think out a solution for this issue is to change
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
to
depends on SND_SOC_IMX_PCM_DMA != m
How do you think about this?
What will happen if to build both SAI/ESAI and IMX_PCM_DMA as modules at the
same
time ?
Thanks,
BRs Xiubo
I didn't find error/warning when SAI/ESAI and IMX_PCM_DMA are as modules. The build is successful.
best regards Wang shengjiu
Hi Xiubo Li
Lars-Peter has point out the root cause. It is caused by the SND_SOC_FSL_ASOC_CARD, which will select SND_SOC_IMX_PCM_DMA.
Thank you very much anyway.
Best regards Wang shengjiu
-----Original Message----- From: Xiubo Li-B47053 Sent: Tuesday, August 19, 2014 5:00 PM To: Wang Shengjiu-B02247 Cc: Lars-Peter Clausen; lgirdwood@gmail.com; broonie@kernel.org; perex@perex.cz; tiwai@suse.de; nicoleotsuka@gmail.com; shc_work@mail.ru; Estevam Fabio-R49496; xobs@kosagi.com; arnd@arndb.de; sfr@canb.auug.org.au; timur@tabi.org; alsa-devel@alsa-project.org; linuxppc-dev@lists.ozlabs.org; linux-kernel@vger.kernel.org Subject: RE: [alsa-devel] [PATCH V1 1/3] ASoC: fsl: Kconfig: remove dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA
How about the following :
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig index 5ae777a..d42f18c 100644 --- a/sound/soc/fsl/Kconfig +++ b/sound/soc/fsl/Kconfig @@ -15,7 +15,7 @@ config SND_SOC_FSL_ASRC config SND_SOC_FSL_SAI tristate "Synchronous Audio Interface (SAI) module support" select REGMAP_MMIO - select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n + select SND_SOC_IMX_PCM_DMA select SND_SOC_GENERIC_DMAENGINE_PCM help Say Y if you want to add Synchronous Audio Interface (SAI) @@ -25,7 +25,7 @@ config SND_SOC_FSL_SAI
config SND_SOC_FSL_SSI tristate "Synchronous Serial Interface module support" - select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n + select SND_SOC_IMX_PCM_DMA select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC) select REGMAP_MMIO help @@ -37,7 +37,7 @@ config SND_SOC_FSL_SSI config SND_SOC_FSL_SPDIF tristate "Sony/Philips Digital Interface module support" select REGMAP_MMIO - select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n + select SND_SOC_IMX_PCM_DMA select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC) help Say Y if you want to add Sony/Philips Digital Interface (SPDIF) @@ -48,7 +48,7 @@ config SND_SOC_FSL_SPDIF config SND_SOC_FSL_ESAI tristate "Enhanced Serial Audio Interface (ESAI) module support" select REGMAP_MMIO - select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n + select SND_SOC_IMX_PCM_DMA help Say Y if you want to add Enhanced Synchronous Audio Interface (ESAI) support for the Freescale CPUs. @@ -76,6 +76,7 @@ config SND_SOC_FSL_ASOC_CARD
config SND_SOC_IMX_PCM_DMA tristate + depends on SND_IMX_SOC select SND_SOC_GENERIC_DMAENGINE_PCM
config SND_SOC_IMX_AUDMUX
Thanks,
BRs Xiubo
-----Original Message----- From: Shengjiu Wang [mailto:shengjiu.wang@freescale.com] Sent: Tuesday, August 19, 2014 4:21 PM To: Xiubo Li-B47053 Cc: Lars-Peter Clausen; lgirdwood@gmail.com; broonie@kernel.org; perex@perex.cz; tiwai@suse.de; nicoleotsuka@gmail.com; shc_work@mail.ru; Estevam Fabio-R49496; xobs@kosagi.com; arnd@arndb.de; sfr@canb.auug.org.au; timur@tabi.org; alsa-devel@alsa-project.org; linuxppc-dev@lists.ozlabs.org; linux-kernel@vger.kernel.org Subject: Re: [alsa-devel] [PATCH V1 1/3] ASoC: fsl: Kconfig: remove dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA
On Tue, Aug 19, 2014 at 04:13:15PM +0800, Xiubo Li-B47053 wrote:
Subject: Re: [alsa-devel] [PATCH V1 1/3] ASoC: fsl: Kconfig: remove
dependence
of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA
On Mon, Aug 18, 2014 at 06:52:46PM +0200, Lars-Peter Clausen wrote:
On 08/18/2014 10:38 AM, Shengjiu Wang wrote:
Build kernel with SND_SOC_IMC_PCM_DMA=m && SND_IMX_SOC=n leads the
following
error:
sound/built-in.o: In function `fsl_sai_probe':
>fsl_sai.c:(.text+0x5f662): undefined reference to `imx_pcm_dma_init'
sound/built-in.o: In function `fsl_esai_probe':
>fsl_esai.c:(.text+0x6044b): undefined reference to `imx_pcm_dma_init'
Most cpu driver in soc/fsl has use the function 'imx_pcm_dma_init'
which is
defined in imx-pcm-dma.c, so need to select SND_SOC_IMX_PCM_DMA, but it
depends
on SND_IMX_SOC, if SND_IMX_SOC=n, then SND_SOC_IMX_PCM_DMA will not be selected. So remove the dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA.
Reported-by: kbuild test robot fengguang.wu@intel.com Signed-off-by: Shengjiu Wang shengjiu.wang@freescale.com
Those if conditions where just added[1] by Arnd to avoid other build failures. So just removing them again makes little sense.
As far as I can see imx_pcm_dma_init() should be stubbed out when SND_SOC_IMX_PCM_DMA is not selected. So what's going on here?
[1]
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/ ?id=ff40
260f79dc0436604452bccd449bffd25ebafb
Lars-Peter Clausen & Arnd
The purpose of Arnd's patch is same with me, which is to resolve the build error when SND_SOC_IMX_PCM_DMA=m & SND_SOC_FSL_SSI/SAI/ESAI/SPDIF=y, the error is "undefined reference to `imx_pcm_dma_init'". But Arnd's patch didn't involve this situation that SND_IMX_SOC=n & SND_SOC_IMX_PCM_DMA=m.
Currently I think out a solution for this issue is to change
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
to
depends on SND_SOC_IMX_PCM_DMA != m
How do you think about this?
What will happen if to build both SAI/ESAI and IMX_PCM_DMA as modules at the
same
time ?
Thanks,
BRs Xiubo
I didn't find error/warning when SAI/ESAI and IMX_PCM_DMA are as modules. The build is successful.
best regards Wang shengjiu
At Tue, 19 Aug 2014 09:00:06 +0000, Li.Xiubo@freescale.com wrote:
How about the following :
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig index 5ae777a..d42f18c 100644 --- a/sound/soc/fsl/Kconfig +++ b/sound/soc/fsl/Kconfig @@ -15,7 +15,7 @@ config SND_SOC_FSL_ASRC config SND_SOC_FSL_SAI tristate "Synchronous Audio Interface (SAI) module support" select REGMAP_MMIO
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
select SND_SOC_IMX_PCM_DMA select SND_SOC_GENERIC_DMAENGINE_PCM help Say Y if you want to add Synchronous Audio Interface (SAI)
@@ -25,7 +25,7 @@ config SND_SOC_FSL_SAI
config SND_SOC_FSL_SSI tristate "Synchronous Serial Interface module support"
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
select SND_SOC_IMX_PCM_DMA select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC) select REGMAP_MMIO help
@@ -37,7 +37,7 @@ config SND_SOC_FSL_SSI config SND_SOC_FSL_SPDIF tristate "Sony/Philips Digital Interface module support" select REGMAP_MMIO
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
select SND_SOC_IMX_PCM_DMA select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC) help Say Y if you want to add Sony/Philips Digital Interface (SPDIF)
@@ -48,7 +48,7 @@ config SND_SOC_FSL_SPDIF config SND_SOC_FSL_ESAI tristate "Enhanced Serial Audio Interface (ESAI) module support" select REGMAP_MMIO
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
select SND_SOC_IMX_PCM_DMA help Say Y if you want to add Enhanced Synchronous Audio Interface (ESAI) support for the Freescale CPUs.
@@ -76,6 +76,7 @@ config SND_SOC_FSL_ASOC_CARD
config SND_SOC_IMX_PCM_DMA tristate
depends on SND_IMX_SOC select SND_SOC_GENERIC_DMAENGINE_PCM
config SND_SOC_IMX_AUDMUX
I see the problem has been addressed, so JFYI: a reverse selection doesn't resolve "depends on". It's a known shortcoming. That is, a selected item can select further others, but cannot depend on others.
Takashi
On 08/19/2014 12:35 PM, Takashi Iwai wrote:
At Tue, 19 Aug 2014 09:00:06 +0000, Li.Xiubo@freescale.com wrote:
How about the following :
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig index 5ae777a..d42f18c 100644 --- a/sound/soc/fsl/Kconfig +++ b/sound/soc/fsl/Kconfig @@ -15,7 +15,7 @@ config SND_SOC_FSL_ASRC config SND_SOC_FSL_SAI tristate "Synchronous Audio Interface (SAI) module support" select REGMAP_MMIO
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
select SND_SOC_IMX_PCM_DMA select SND_SOC_GENERIC_DMAENGINE_PCM help Say Y if you want to add Synchronous Audio Interface (SAI)
@@ -25,7 +25,7 @@ config SND_SOC_FSL_SAI
config SND_SOC_FSL_SSI tristate "Synchronous Serial Interface module support"
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
select SND_SOC_IMX_PCM_DMA select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC) select REGMAP_MMIO help
@@ -37,7 +37,7 @@ config SND_SOC_FSL_SSI config SND_SOC_FSL_SPDIF tristate "Sony/Philips Digital Interface module support" select REGMAP_MMIO
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
select SND_SOC_IMX_PCM_DMA select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC) help Say Y if you want to add Sony/Philips Digital Interface (SPDIF)
@@ -48,7 +48,7 @@ config SND_SOC_FSL_SPDIF config SND_SOC_FSL_ESAI tristate "Enhanced Serial Audio Interface (ESAI) module support" select REGMAP_MMIO
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
select SND_SOC_IMX_PCM_DMA help Say Y if you want to add Enhanced Synchronous Audio Interface (ESAI) support for the Freescale CPUs.
@@ -76,6 +76,7 @@ config SND_SOC_FSL_ASOC_CARD
config SND_SOC_IMX_PCM_DMA tristate
depends on SND_IMX_SOC select SND_SOC_GENERIC_DMAENGINE_PCM
config SND_SOC_IMX_AUDMUX
I see the problem has been addressed, so JFYI: a reverse selection doesn't resolve "depends on". It's a known shortcoming. That is, a selected item can select further others, but cannot depend on others.
The item will still be selected regardless of its dependencies, but Kconfig will print a warning if one or more of the dependencies are not met along with the dependency chain that causes the warning. So you'll have a clue why things go wrong.
- Lars
On 08/19/2014 09:41 AM, Shengjiu Wang wrote:
On Mon, Aug 18, 2014 at 06:52:46PM +0200, Lars-Peter Clausen wrote:
On 08/18/2014 10:38 AM, Shengjiu Wang wrote:
Build kernel with SND_SOC_IMC_PCM_DMA=m && SND_IMX_SOC=n leads the following error:
sound/built-in.o: In function `fsl_sai_probe':
fsl_sai.c:(.text+0x5f662): undefined reference to `imx_pcm_dma_init'
sound/built-in.o: In function `fsl_esai_probe':
fsl_esai.c:(.text+0x6044b): undefined reference to `imx_pcm_dma_init'
Most cpu driver in soc/fsl has use the function 'imx_pcm_dma_init' which is defined in imx-pcm-dma.c, so need to select SND_SOC_IMX_PCM_DMA, but it depends on SND_IMX_SOC, if SND_IMX_SOC=n, then SND_SOC_IMX_PCM_DMA will not be selected. So remove the dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA.
Reported-by: kbuild test robot fengguang.wu@intel.com Signed-off-by: Shengjiu Wang shengjiu.wang@freescale.com
Those if conditions where just added[1] by Arnd to avoid other build failures. So just removing them again makes little sense.
As far as I can see imx_pcm_dma_init() should be stubbed out when SND_SOC_IMX_PCM_DMA is not selected. So what's going on here?
[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ff...
Lars-Peter Clausen & Arnd
The purpose of Arnd's patch is same with me, which is to resolve the build error when SND_SOC_IMX_PCM_DMA=m & SND_SOC_FSL_SSI/SAI/ESAI/SPDIF=y, the error is "undefined reference to `imx_pcm_dma_init'". But Arnd's patch didn't involve this situation that SND_IMX_SOC=n & SND_SOC_IMX_PCM_DMA=m.
Having SND_SOC_IMX_PCM_DMA selected if SND_IMX_SOC is not selected makes no sense. I think the proper fix is to find out why it is selected and make sure that it is not selected when SND_IMX_SOC is not selected.
Currently I think out a solution for this issue is to change
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
to
depends on SND_SOC_IMX_PCM_DMA != m
How do you think about this?
No, that has the dependencies in reverse.
On 08/19/2014 10:36 AM, Lars-Peter Clausen wrote:
On 08/19/2014 09:41 AM, Shengjiu Wang wrote:
On Mon, Aug 18, 2014 at 06:52:46PM +0200, Lars-Peter Clausen wrote:
On 08/18/2014 10:38 AM, Shengjiu Wang wrote:
Build kernel with SND_SOC_IMC_PCM_DMA=m && SND_IMX_SOC=n leads the following error:
sound/built-in.o: In function `fsl_sai_probe':
fsl_sai.c:(.text+0x5f662): undefined reference to `imx_pcm_dma_init'
sound/built-in.o: In function `fsl_esai_probe':
fsl_esai.c:(.text+0x6044b): undefined reference to `imx_pcm_dma_init'
Most cpu driver in soc/fsl has use the function 'imx_pcm_dma_init' which is defined in imx-pcm-dma.c, so need to select SND_SOC_IMX_PCM_DMA, but it depends on SND_IMX_SOC, if SND_IMX_SOC=n, then SND_SOC_IMX_PCM_DMA will not be selected. So remove the dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA.
Reported-by: kbuild test robot fengguang.wu@intel.com Signed-off-by: Shengjiu Wang shengjiu.wang@freescale.com
Those if conditions where just added[1] by Arnd to avoid other build failures. So just removing them again makes little sense.
As far as I can see imx_pcm_dma_init() should be stubbed out when SND_SOC_IMX_PCM_DMA is not selected. So what's going on here?
[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ff...
Lars-Peter Clausen & Arnd
The purpose of Arnd's patch is same with me, which is to resolve the build error when SND_SOC_IMX_PCM_DMA=m & SND_SOC_FSL_SSI/SAI/ESAI/SPDIF=y, the error is "undefined reference to `imx_pcm_dma_init'". But Arnd's patch didn't involve this situation that SND_IMX_SOC=n & SND_SOC_IMX_PCM_DMA=m.
Having SND_SOC_IMX_PCM_DMA selected if SND_IMX_SOC is not selected makes no sense. I think the proper fix is to find out why it is selected and make sure that it is not selected when SND_IMX_SOC is not selected.
I guess the issue happens if SND_SOC_FSL_ASOC_CARD=m and SND_SOC_FSL_{ESAI,SAI,SSI}=y. In this case the fix is simply to drop the select SND_SOC_IMX_PCM_DMA from SND_SOC_FSL_ASOC_CARD.
- Lars
On Tue, Aug 19, 2014 at 10:45:04AM +0200, Lars-Peter Clausen wrote:
On 08/19/2014 10:36 AM, Lars-Peter Clausen wrote:
On 08/19/2014 09:41 AM, Shengjiu Wang wrote:
On Mon, Aug 18, 2014 at 06:52:46PM +0200, Lars-Peter Clausen wrote:
On 08/18/2014 10:38 AM, Shengjiu Wang wrote:
Build kernel with SND_SOC_IMC_PCM_DMA=m && SND_IMX_SOC=n leads the following error:
sound/built-in.o: In function `fsl_sai_probe':
>fsl_sai.c:(.text+0x5f662): undefined reference to `imx_pcm_dma_init'
sound/built-in.o: In function `fsl_esai_probe':
>fsl_esai.c:(.text+0x6044b): undefined reference to `imx_pcm_dma_init'
Most cpu driver in soc/fsl has use the function 'imx_pcm_dma_init' which is defined in imx-pcm-dma.c, so need to select SND_SOC_IMX_PCM_DMA, but it depends on SND_IMX_SOC, if SND_IMX_SOC=n, then SND_SOC_IMX_PCM_DMA will not be selected. So remove the dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA.
Reported-by: kbuild test robot fengguang.wu@intel.com Signed-off-by: Shengjiu Wang shengjiu.wang@freescale.com
Those if conditions where just added[1] by Arnd to avoid other build failures. So just removing them again makes little sense.
As far as I can see imx_pcm_dma_init() should be stubbed out when SND_SOC_IMX_PCM_DMA is not selected. So what's going on here?
[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ff...
Lars-Peter Clausen & Arnd
The purpose of Arnd's patch is same with me, which is to resolve the build error when SND_SOC_IMX_PCM_DMA=m & SND_SOC_FSL_SSI/SAI/ESAI/SPDIF=y, the error is "undefined reference to `imx_pcm_dma_init'". But Arnd's patch didn't involve this situation that SND_IMX_SOC=n & SND_SOC_IMX_PCM_DMA=m.
Having SND_SOC_IMX_PCM_DMA selected if SND_IMX_SOC is not selected makes no sense. I think the proper fix is to find out why it is selected and make sure that it is not selected when SND_IMX_SOC is not selected.
I guess the issue happens if SND_SOC_FSL_ASOC_CARD=m and SND_SOC_FSL_{ESAI,SAI,SSI}=y. In this case the fix is simply to drop the select SND_SOC_IMX_PCM_DMA from SND_SOC_FSL_ASOC_CARD.
- Lars
Yes, you are right. Thanks. I will send another patch.
best regards wang shengjiu
When build fsl-asoc-card as module, there is following error:
sound/soc/fsl/fsl-asoc-card.c: In function 'fsl_asoc_card_probe':
sound/soc/fsl/fsl-asoc-card.c:547:13: warning: 'asrc_np' may be used uninitialized in this function [-Wmaybe-uninitialized]
of_node_put(asrc_np); ^
vim +/asrc_np +547 sound/soc/fsl/fsl-asoc-card.c
531 if (width == 24) 532 priv->asrc_format = SNDRV_PCM_FORMAT_S24_LE; 533 else 534 priv->asrc_format = SNDRV_PCM_FORMAT_S16_LE; 535 } 536 537 /* Finish card registering */ 538 platform_set_drvdata(pdev, priv); 539 snd_soc_card_set_drvdata(&priv->card, priv); 540 541 ret = devm_snd_soc_register_card(&pdev->dev, &priv->card); 542 if (ret) 543 dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", ret); 544 545 fail: 546 of_node_put(codec_np);
547 of_node_put(asrc_np);
548 of_node_put(cpu_np); 549 550 return ret; 551 } 552 553 static const struct of_device_id fsl_asoc_card_dt_ids[] = { 554 { .compatible = "fsl,imx-audio-cs42888", }, 555 { .compatible = "fsl,imx-audio-sgtl5000", },
Add 'asrc_fail' branch for error jump after asrc_np initialized.
Reported-by: kbuild test robot fengguang.wu@intel.com Signed-off-by: Shengjiu Wang shengjiu.wang@freescale.com --- sound/soc/fsl/fsl-asoc-card.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/sound/soc/fsl/fsl-asoc-card.c b/sound/soc/fsl/fsl-asoc-card.c index cf3f1f4..007c772 100644 --- a/sound/soc/fsl/fsl-asoc-card.c +++ b/sound/soc/fsl/fsl-asoc-card.c @@ -469,7 +469,7 @@ static int fsl_asoc_card_probe(struct platform_device *pdev) ret = fsl_asoc_card_audmux_init(np, priv); if (ret) { dev_err(&pdev->dev, "failed to init audmux\n"); - goto fail; + goto asrc_fail; } } else if (strstr(cpu_np->name, "esai")) { priv->cpu_priv.sysclk_id[1] = ESAI_HCKT_EXTAL; @@ -518,14 +518,14 @@ static int fsl_asoc_card_probe(struct platform_device *pdev) if (ret) { dev_err(&pdev->dev, "failed to get output rate\n"); ret = -EINVAL; - goto fail; + goto asrc_fail; }
ret = of_property_read_u32(asrc_np, "fsl,asrc-width", &width); if (ret) { dev_err(&pdev->dev, "failed to get output rate\n"); ret = -EINVAL; - goto fail; + goto asrc_fail; }
if (width == 24) @@ -542,9 +542,10 @@ static int fsl_asoc_card_probe(struct platform_device *pdev) if (ret) dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", ret);
+asrc_fail: + of_node_put(asrc_np); fail: of_node_put(codec_np); - of_node_put(asrc_np); of_node_put(cpu_np);
return ret;
Building kernel with SND_SOC_IMX_AUDMUX=n leads to the following error:
sound/built-in.o: In function `fsl_asoc_card_probe':
fsl-asoc-card.c:(.text+0x1467b5): undefined reference to `imx_audmux_v2_configure_port' fsl-asoc-card.c:(.text+0x1467d0): undefined reference to `imx_audmux_v2_configure_port' fsl-asoc-card.c:(.text+0x1467ed): undefined reference to `imx_audmux_v2_configure_port' fsl-asoc-card.c:(.text+0x146807): undefined reference to `imx_audmux_v2_configure_port'
Update Kconfig to select SND_SOC_IMX_AUDMUX when SND_SOC_FSL_ASOC_CARD=y.
Reported-by: kbuild test robot fengguang.wu@intel.com Signed-off-by: Shengjiu Wang shengjiu.wang@freescale.com --- sound/soc/fsl/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig index 3a3732c..dc0d08b 100644 --- a/sound/soc/fsl/Kconfig +++ b/sound/soc/fsl/Kconfig @@ -61,6 +61,7 @@ config SND_SOC_FSL_UTILS config SND_SOC_FSL_ASOC_CARD tristate "Generic ASoC Sound Card with ASRC support" depends on OF && I2C + select SND_SOC_IMX_AUDMUX select SND_SOC_IMX_PCM_DMA select SND_SOC_FSL_ESAI select SND_SOC_FSL_SAI
participants (6)
-
Lars-Peter Clausen
-
Li.Xiubo@freescale.com
-
Mark Brown
-
Shengjiu Wang
-
shengjiu.wang@freescale.com
-
Takashi Iwai