On Tue, Oct 09, 2012 at 03:16:15PM +0200, Péter Ujfalusi wrote:
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.
No it doesn't.
Without this patch with mainline kernel from today (I used tegra to see if it happens there as well):
[sound/soc/tegra/snd-soc-tegra-pcm.ko] undefined! ERROR: "snd_dmaengine_pcm_pointer" [sound/soc/tegra/snd-soc-tegra-pcm.ko] undefined!
I guess it was due to the Kconfig/Makefile related to soc-dmaengine:
All the above is telling you is that if you make this change the error goes away. It doesn't explain what the problem is or why this change fixes it.
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
Indeed, so this is getting warmer. The problem is that the way Kconfig is set up is causing CONFIG_SND_SOC_DMAENGINE_PCM to come out as something that doesn't get built as it's a bool selected by a module and as you say one fix here is to make the dmaengine code a module by itself.
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.
No, why would module_init() have anything to do with this? Is there something that needs to be run at startup for soc-dmaengine?