[alsa-devel] Question about struct snd_soc_dai() :: cpu_dai->codec
Kuninori Morimoto
kuninori.morimoto.gx at renesas.com
Tue Jul 26 07:41:56 CEST 2016
Hi ALSA SoC
My current headache is ALSA SoC's each modules (= Card/Codec/CPU/Platform)
doesn't care about "unbind/rmmod".
For example, if someone unbinded/rmmoded "Codec", Card or other modules
doesn't know about it. Thus, user can continue to use this sound card,
and kernel will be Oops.
So, I would like to solve this issue, and for this purpose,
now I'm investigating about ALSA SoC structures.
It is now super complex, and I noticed that it is having duplicated
struct members.
If possible, I would like to cleanup this issue.
During this investigating, I noticed 1 strange operation
${LINUX}/sound/soc/soc-core.c :: snd_soc_runtime_set_dai_fmt
int snd_soc_runtime_set_dai_fmt(xxx)
{
...
/* Flip the polarity for the "CPU" end of a CODEC<->CODEC link */
if (cpu_dai->codec) {
...
}
...
}
struct snd_soc_dai {
...
/* parent platform/codec */
struct snd_soc_codec *codec;
struct snd_soc_component *component;
...
}
According to snd_soc_dai, *codec is its "parent".
I wonder does "cpu_dai" really can have "codec" parent ??
I think this is not correct, and we can remove this operation ?
More information about the Alsa-devel
mailing list