[alsa-devel] [PATCH] ASoC: dmaengine: Correct Makefile when sound is built as module
Péter Ujfalusi
peter.ujfalusi at ti.com
Tue Oct 9 15:16:15 CEST 2012
On 10/09/2012 11:08 AM, Mark Brown wrote:
> What makes you believe that this is due to the code not being part of
> the core module?
the linker tells me.
Without this patch with mainline kernel from today (I used tegra to see if it
happens there as well):
make tegra_defconfig
scripts/config -d CONFIG_MMC # MMC does not compile for tegra
scripts/config -e CONFIG_SOUND -e CONFIG_SND -e CONFIG_SND_SOC
Fine
scripts/config -e CONFIG_SOUND -e CONFIG_SND -m CONFIG_SND_SOC
sound/built-in.o: In function `dmaengine_pcm_dma_complete':
/home/ujfalusi/work/kernel/kernel.org-torvalds-linux-2.6/sound/soc/soc-dmaengine-pcm.c:134:
undefined reference to `snd_pcm_period_elapsed'
sound/built-in.o: In function `snd_dmaengine_pcm_open':
/home/ujfalusi/work/kernel/kernel.org-torvalds-linux-2.6/sound/soc/soc-dmaengine-pcm.c:285:
undefined reference to `snd_pcm_hw_constraint_integer'
make: *** [vmlinux] Error 1
scripts/config -e CONFIG_SOUND -m CONFIG_SND -m CONFIG_SND_SOC
scripts/config -m CONFIG_SOUND -m CONFIG_SND -m CONFIG_SND_SOC
ERROR: "snd_hwparams_to_dma_slave_config"
[sound/soc/tegra/snd-soc-tegra-pcm.ko] undefined!
ERROR: "snd_dmaengine_pcm_pointer" [sound/soc/tegra/snd-soc-tegra-pcm.ko]
undefined!
ERROR: "snd_dmaengine_pcm_open" [sound/soc/tegra/snd-soc-tegra-pcm.ko] undefined!
ERROR: "snd_dmaengine_pcm_close" [sound/soc/tegra/snd-soc-tegra-pcm.ko] undefined!
ERROR: "snd_dmaengine_pcm_get_chan" [sound/soc/tegra/snd-soc-tegra-pcm.ko]
undefined!
ERROR: "snd_dmaengine_pcm_trigger" [sound/soc/tegra/snd-soc-tegra-pcm.ko]
undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2
make: *** Waiting for unfinished jobs....
With the patch:
make tegra_defconfig
scripts/config -d CONFIG_MMC # MMC does not compile for tegra
scripts/config -e CONFIG_SOUND -e CONFIG_SND -e CONFIG_SND_SOC
scripts/config -e CONFIG_SOUND -e CONFIG_SND -m CONFIG_SND_SOC
scripts/config -e CONFIG_SOUND -m CONFIG_SND -m CONFIG_SND_SOC
scripts/config -m CONFIG_SOUND -m CONFIG_SND -m CONFIG_SND_SOC
is fine.
I guess it was due to the Kconfig/Makefile related to soc-dmaengine:
config SND_SOC_DMAENGINE_PCM
bool
snd-soc-dmaengine-pcm-objs := soc-dmaengine-pcm.o
obj-$(CONFIG_SND_SOC_DMAENGINE_PCM) += snd-soc-dmaengine-pcm.o
My guess is that in this way the soc-dmaengine-pcm.o would want itself to be
built in to the kernel but since the sound is in modules there is no place to
link this part of the code.
If I change the Kconfig from bool to tristate it will build
snd-soc-dmaengine-pcm.ko but since the soc-dmaengine-pcm.c does not have
module_init it is not really going to load.
I might be wrong.
--
Péter
More information about the Alsa-devel
mailing list