Question about struct snd_soc_dai() :: cpu_dai->codec

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 ?
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux