Thread (18 messages) flat view 18 messages, 5 authors, 2014-08-19

Re: [alsa-devel] [PATCH V1 1/3] ASoC: fsl: Kconfig: remove dependence of SND_IMX_SOC for SND_SOC_IMX_PCM_DMA

From: Lars-Peter Clausen <lars@metafoo.de>
Date: 2014-08-19 08:37:08
Also in: alsa-devel, lkml

On 08/19/2014 09:41 AM, Shengjiu Wang wrote:
On Mon, Aug 18, 2014 at 06:52:46PM +0200, Lars-Peter Clausen wrote:
quoted
On 08/18/2014 10:38 AM, Shengjiu Wang wrote:
quoted
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':
quoted
quoted
fsl_sai.c:(.text+0x5f662): undefined reference to `imx_pcm_dma_init'
    sound/built-in.o: In function `fsl_esai_probe':
quoted
quoted
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 <redacted>
Signed-off-by: Shengjiu Wang <redacted>
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=ff40260f79dc0436604452bccd449bffd25ebafb
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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help