Re: [PATCH] ASoC: simple-card: fix module load "unknown symbol" issue

From: Kevin Hilman
Date: Mon Aug 01 2016 - 22:41:39 EST


On Mon, Aug 1, 2016 at 6:13 PM, Kuninori Morimoto
<kuninori.morimoto.gx@xxxxxxxxxxx> wrote:
>
> Hi Kevin
>
> Thank you for your patch
>
>> An ASoC driver using simple-card, when built as a module gets the
>> following error at module load time:
>>
>> [ 23.571873] simple_card_utils: Unknown symbol snd_soc_of_parse_daifmt (err 0)
>> [ 23.712726] simple_card_utils: Unknown symbol snd_soc_of_parse_card_name (err 0)
>>
>> fix this by including simple-card-utils.o symbols in the module build
>> its symols are resolved correctly.
>>
>> Tested on Davinci DA850-EVM using snd_soc_edma, snc_soc_davinci_mcasp,
>> with all of ASoC built as modules.
>>
>> Cc: Sekhar Nori <nsekhar@xxxxxx>
>> Signed-off-by: Kevin Hilman <khilman@xxxxxxxxxxxx>
>> ---
>
> Hmm... strange...
>
> simple-card-utils will be used not only simple-card in the future,
> thus it should be build separately.
>
> And, snd_soc_of_parse_daifmt() and snd_soc_of_parse_card_name() are
> already exported on soc-core.c ?
>
> I tried it as module, but no error for me

The error I'm getting is not at build time, but at module load time.

The various snd related modules are autoloaded by udev events, but
during that time I see this:

[ 23.571873] simple_card_utils: Unknown symbol snd_soc_of_parse_daifmt (err 0)
[ 23.712726] simple_card_utils: Unknown symbol
snd_soc_of_parse_card_name (err 0)

and my patch fixes that problem so that the module symbols resolve at load time.

Kevin