alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* Question about struct snd_soc_dai() :: cpu_dai->codec
@ 2016-07-26  5:41 Kuninori Morimoto
  2016-07-27  3:21 ` [alsa-devel] " Vinod Koul
  2016-07-28 20:24 ` [alsa-devel] " Lars-Peter Clausen
  0 siblings, 2 replies; 39+ messages in thread
From: Kuninori Morimoto @ 2016-07-26  5:41 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Liam Girdwood, Simon, linux-renesas-soc


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 ?

^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2016-08-05  7:29 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-26  5:41 Question about struct snd_soc_dai() :: cpu_dai->codec Kuninori Morimoto
2016-07-27  3:21 ` [alsa-devel] " Vinod Koul
2016-07-27  3:42   ` Kuninori Morimoto
2016-07-27  5:57   ` Takashi Iwai
2016-07-27  6:36     ` Kuninori Morimoto
2016-07-27 17:21     ` Vinod Koul
2016-07-27 18:04       ` Mark Brown
2016-07-27 18:11         ` Takashi Iwai
2016-07-27 18:22           ` Mark Brown
2016-07-27 20:22             ` Takashi Iwai
2016-07-28  3:46               ` Vinod Koul
2016-07-28 20:33                 ` Lars-Peter Clausen
2016-07-28 20:42                   ` Takashi Iwai
2016-07-28 20:43                     ` Lars-Peter Clausen
2016-07-28 20:44                   ` Mark Brown
2016-07-29  0:30                   ` Takashi Sakamoto
2016-07-29  9:07                     ` Lars-Peter Clausen
2016-07-29 16:07                       ` Vinod Koul
2016-07-29 20:41                         ` Takashi Iwai
2016-07-29 21:45                           ` Takashi Sakamoto
2016-07-29 22:08                             ` Mark Brown
2016-08-04  3:17                               ` Takashi Sakamoto
2016-08-04 10:28                                 ` Mark Brown
2016-08-04 12:12                                   ` Takashi Sakamoto
2016-08-04 12:27                                     ` Takashi Iwai
2016-08-04 13:39                                       ` Takashi Sakamoto
2016-08-04 13:52                                         ` Takashi Iwai
2016-07-28 20:24 ` [alsa-devel] " Lars-Peter Clausen
2016-07-29  2:24   ` Kuninori Morimoto
2016-07-29  9:01     ` Lars-Peter Clausen
2016-07-29 14:41       ` Mark Brown
2016-08-01  3:45         ` Kuninori Morimoto
2016-08-02  6:47           ` Kuninori Morimoto
2016-08-03 19:32             ` [alsa-devel] " Lars-Peter Clausen
2016-08-04  2:38               ` Kuninori Morimoto
2016-08-04  8:21                 ` Lars-Peter Clausen
2016-08-04 20:56                   ` [alsa-devel] " Mark Brown
2016-08-05  7:29                   ` Kuninori Morimoto
2016-08-04 20:37                 ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).