All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lars-Peter Clausen <lars@metafoo.de>
To: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Linux-ALSA <alsa-devel@alsa-project.org>,
	Mark Brown <broonie@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>, Simon <horms@verge.net.au>
Subject: Re: [PATCH 000/127] ASoC: codec cleanup - codec probe/remove
Date: Fri, 12 Aug 2016 11:33:13 +0200	[thread overview]
Message-ID: <c8b124b3-68fa-8dc3-37cb-451897822b66@metafoo.de> (raw)
In-Reply-To: <87wpjmrdgw.wl%kuninori.morimoto.gx@renesas.com>

On 08/12/2016 03:27 AM, Kuninori Morimoto wrote:
[...]
>>> According to your (and Lars ?) idea, if component includes all features,
>>> then, current "codec" will be "component", and "platform" will be "component" too (?).
>>> If so, I think necessary patch in final stage is like this ?
>>>
>>> 	- static struct snd_soc_codec_driver xxxx = {
>>> 	+ static struct snd_soc_component_driver xxxx = {
>>
>> In the long run probably yes, with the distinction of particular features
>> happening at a different level. E.g. like I pointed out in one of the
>> earlier e-mails, one such layer could be the domain and bridge layer were a
>> component is subdivided into domains and bridges.
> 
> If my understanding was correct,
> current CPU/Codec/Platform will merged and goes to your "component" position.
> current snd_soc_dai will be cleanuped and goes to your "bridge" position.
> Are these correct ?

The domain+bridge concept is currently just an idea, it still needs somebody
to implement it before it becomes reality.

> But I wonder current which portion is the "domain" position ?
> ("domain" + "bridge" = current snd_soc_dai ?)
> Or we don't have such position at this point ?

At the moment there is nothing that translates well to the domain+bridge
concept since we only have single domain, so all components and functional
blocks all run in the same domain and there are no bridges.

> 
> BTW, I would like to replace below as next challenge.
> These are easy, and necessary.
> 	snd_soc_write()		-> snd_soc_component_write()
> 	snd_soc_update_bits()	-> snd_soc_component_update_bits()
> 
> This is a little bit difficult, but I can do is step-by-step.
> 	snd_soc_read()		-> snd_soc_component_read()

How do you want to replace them?

snd_soc_read() is placed at the CODEC layer and snd_soc_component_read() is
placed at the component layer. As long as the driver is a CODEC driver
(using snd_soc_register_codec()) it is OK that it uses snd_soc_read() and
similar. Using snd_soc_component_read() on the other hand would introduce
some slight boilerplate code, since the driver now has to cast from
snd_soc_codec to snd_soc_component.

snd_soc_read() and similar are part of a clear hierarchy and are not part of
the current problem. Removing them is not a priority and changing them to
snd_soc_component_read() should only be done where it makes sense (driver is
a component driver and uses snd_soc_register_component()).

The problems are where we break the hierarchy, e.g. the codec point in
snd_soc_component. This is something we should try to work towards removing
and fixing if we can.

> 
> If above were OK, some codec driver can use component side .probe/.remove
> I think Lars's opinion is that this should be final stage,
> but I think we can do this as parallel, and I like step-by-step approach.
> Of course I can skip it if you have strong objection.

I think we should wait with this until a driver is a component driver (uses
snd_soc_register_component). E.g. have a look at this commit [1] for a good
example where it makes sense to do the conversion.

[1]
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=04b5cbd80af899c6a4d51835b069b96ae8864e5a

> So please let me know.
> I will have summer vacation from tomorrow, so I can start it after that.

Enjoy your vacation.

  reply	other threads:[~2016-08-12  9:33 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-09  4:52 [PATCH 000/127] ASoC: codec cleanup - codec probe/remove Kuninori Morimoto
2016-08-09  4:53 ` [PATCH 001/127] ASoC: use component probe/remove on tas5086 Kuninori Morimoto
2016-08-09  4:53 ` [PATCH 002/127] ASoC: use component probe/remove on pistachio-internal-dac Kuninori Morimoto
2016-08-09  4:54 ` [PATCH 003/127] ASoC: use component probe/remove on wm8985 Kuninori Morimoto
2016-08-09  4:54 ` [PATCH 004/127] ASoC: use component probe/remove on wm8978 Kuninori Morimoto
2016-08-09  4:55 ` [PATCH 005/127] ASoC: use component probe/remove on wm8974 Kuninori Morimoto
2016-08-09  4:55 ` [PATCH 006/127] ASoC: use component probe/remove on wm8962 Kuninori Morimoto
2016-08-09  4:55 ` [PATCH 025/127] ASoC: use component probe/remove on sta32x Kuninori Morimoto
2016-08-09  4:56 ` [PATCH 007/127] ASoC: use component probe/remove on wm8960 Kuninori Morimoto
2016-08-09  4:56 ` [PATCH 008/127] ASoC: use component probe/remove on wm8776 Kuninori Morimoto
2016-08-09  4:56 ` [PATCH 009/127] ASoC: use component probe/remove on wm8770 Kuninori Morimoto
2016-08-09  4:57 ` [PATCH 010/127] ASoC: use component probe/remove on wm8753 Kuninori Morimoto
2016-08-09  4:57 ` [PATCH 011/127] ASoC: use component probe/remove on wm8750 Kuninori Morimoto
2016-08-09  4:58 ` [PATCH 012/127] ASoC: use component probe/remove on wm8741 Kuninori Morimoto
2016-08-09  4:58 ` [PATCH 013/127] ASoC: use component probe/remove on wm8737 Kuninori Morimoto
2016-08-09  4:58 ` [PATCH 014/127] ASoC: use component probe/remove on wm8711 Kuninori Morimoto
2016-08-09  4:59 ` [PATCH 015/127] ASoC: use component probe/remove on wm8580 Kuninori Morimoto
2016-08-09  4:59 ` [PATCH 016/127] ASoC: use component probe/remove on wm8523 Kuninori Morimoto
2016-08-09  5:00 ` [PATCH 017/127] ASoC: use component probe/remove on wm8510 Kuninori Morimoto
2016-08-09  5:00 ` [PATCH 018/127] ASoC: use component probe/remove on tlv320aic3x Kuninori Morimoto
2016-08-09  5:00 ` [PATCH 019/127] ASoC: use component probe/remove on tlv320aic31xx Kuninori Morimoto
2016-08-09  5:01 ` [PATCH 020/127] ASoC: use component probe/remove on tlv320aic23 Kuninori Morimoto
2016-08-09  5:01 ` [PATCH 021/127] ASoC: use component probe/remove on tas5720 Kuninori Morimoto
2016-08-09  5:02 ` [PATCH 022/127] ASoC: use component probe/remove on tas2552 Kuninori Morimoto
2016-08-09  5:02 ` [PATCH 023/127] ASoC: use component probe/remove on sti-sas Kuninori Morimoto
2016-08-09  5:03 ` [PATCH 024/127] ASoC: use component probe/remove on sta350 Kuninori Morimoto
2016-08-09  5:04 ` [PATCH 026/127] ASoC: use component probe/remove on ssm2602 Kuninori Morimoto
2016-08-09  5:05 ` [PATCH 027/127] ASoC: use component probe/remove on sgtl5000 Kuninori Morimoto
2016-08-09  5:06 ` [PATCH 028/127] ASoC: use component probe/remove on rt5631 Kuninori Morimoto
2016-08-09  5:06 ` [PATCH 029/127] ASoC: use component probe/remove on rt5616 Kuninori Morimoto
2016-08-09  5:07 ` [PATCH 030/127] ASoC: use component probe/remove on inno_rk3036 Kuninori Morimoto
2016-08-09  5:07 ` [PATCH 031/127] ASoC: use component probe/remove on es8328 Kuninori Morimoto
2016-08-09  5:08 ` [PATCH 032/127] ASoC: use component probe/remove on cs53l30 Kuninori Morimoto
2016-08-09  5:08 ` [PATCH 033/127] ASoC: use component probe/remove on cs42xx8 Kuninori Morimoto
2016-08-09  5:08 ` [PATCH 034/127] ASoC: use component probe/remove on cs42l73 Kuninori Morimoto
2016-08-09  5:09 ` [PATCH 035/127] ASoC: use component probe/remove on cs42l56 Kuninori Morimoto
2016-08-09  5:09 ` [PATCH 036/127] ASoC: use component probe/remove on cs42l52 Kuninori Morimoto
2016-08-09  5:10 ` [PATCH 037/127] ASoC: use component probe/remove on cs42l51 Kuninori Morimoto
2016-08-09  5:10 ` [PATCH 038/127] ASoC: use component probe/remove on cs4271 Kuninori Morimoto
2016-08-09  5:11 ` [PATCH 039/127] ASoC: use component probe/remove on cs4270 Kuninori Morimoto
2016-08-09  5:12 ` [PATCH 040/127] ASoC: use component probe/remove on cs35l33 Kuninori Morimoto
2016-08-09  5:12 ` [PATCH 041/127] ASoC: use component probe/remove on alc5623 Kuninori Morimoto
2016-08-09  5:12 ` [PATCH 042/127] ASoC: use component probe/remove on ak5386 Kuninori Morimoto
2016-08-09  5:13 ` [PATCH 043/127] ASoC: use component probe/remove on ak4642 Kuninori Morimoto
2016-08-09  5:13 ` [PATCH 044/127] ASoC: use component probe/remove on ak4104 Kuninori Morimoto
2016-08-09  5:14 ` [PATCH 045/127] ASoC: use component probe/remove on adau1701 Kuninori Morimoto
2016-08-09  5:15 ` [PATCH 046/127] ASoC: use component probe/remove on ac97 Kuninori Morimoto
2016-08-09  5:15 ` [PATCH 047/127] ASoC: use component probe/remove on atmel-classd Kuninori Morimoto
2016-08-09  5:15 ` [PATCH 048/127] ASoC: use component probe/remove on atmel-pdmic Kuninori Morimoto
2016-08-09  5:16 ` [PATCH 049/127] ASoC: use component probe/remove on 88pm860x-codec Kuninori Morimoto
2016-08-09  5:16 ` [PATCH 050/127] ASoC: use component probe/remove on ab8500-codec Kuninori Morimoto
2016-08-09  5:17 ` [PATCH 051/127] ASoC: use component probe/remove on ad1836 Kuninori Morimoto
2016-08-09  5:17 ` [PATCH 052/127] ASoC: use component probe/remove on ad193x Kuninori Morimoto
2016-08-09  5:17 ` [PATCH 053/127] ASoC: use component probe/remove on ad1980 Kuninori Morimoto
2016-08-09  5:18 ` [PATCH 054/127] ASoC: use component probe/remove on adau1373 Kuninori Morimoto
2016-08-09  5:18 ` [PATCH 055/127] ASoC: use component probe/remove on adau1761 Kuninori Morimoto
2016-08-09  5:19 ` [PATCH 056/127] ASoC: use component probe/remove on adau1781 Kuninori Morimoto
2016-08-09  5:19 ` [PATCH 057/127] ASoC: use component probe/remove on adau1977 Kuninori Morimoto
2016-08-09  5:19 ` [PATCH 058/127] ASoC: use component probe/remove on adav80x Kuninori Morimoto
2016-08-09  5:20 ` [PATCH 059/127] ASoC: use component probe/remove on alc5632 Kuninori Morimoto
2016-08-09  5:21 ` [PATCH 060/127] ASoC: use component probe/remove on cs47l24 Kuninori Morimoto
2016-08-09  5:21 ` [PATCH 061/127] ASoC: use component probe/remove on cx20442 Kuninori Morimoto
2016-08-09  5:21 ` [PATCH 062/127] ASoC: use component probe/remove on da7210 Kuninori Morimoto
2016-08-09  5:22 ` [PATCH 063/127] ASoC: use component probe/remove on da7213 Kuninori Morimoto
2016-08-09  5:22 ` [PATCH 064/127] ASoC: use component probe/remove on wm9713 Kuninori Morimoto
2016-08-09  5:22 ` [PATCH 065/127] ASoC: use component probe/remove on wm9712 Kuninori Morimoto
2016-08-09  5:23 ` [PATCH 066/127] ASoC: use component probe/remove on wm9705 Kuninori Morimoto
2016-08-09  5:23 ` [PATCH 067/127] ASoC: use component probe/remove on wm9090 Kuninori Morimoto
2016-08-09  5:23 ` [PATCH 068/127] ASoC: use component probe/remove on wm9081 Kuninori Morimoto
2016-08-09  5:24 ` [PATCH 069/127] ASoC: use component probe/remove on wm8998 Kuninori Morimoto
2016-08-09  5:24 ` [PATCH 070/127] ASoC: use component probe/remove on wm8997 Kuninori Morimoto
2016-08-09  5:25 ` [PATCH 071/127] ASoC: use component probe/remove on wm8996 Kuninori Morimoto
2016-08-09  5:25 ` [PATCH 072/127] ASoC: use component probe/remove on wm8995 Kuninori Morimoto
2016-08-09  5:25 ` [PATCH 073/127] ASoC: use component probe/remove on wm8994 Kuninori Morimoto
2016-08-09  5:26 ` [PATCH 074/127] ASoC: use component probe/remove on wm8993 Kuninori Morimoto
2016-08-09  5:26 ` [PATCH 075/127] ASoC: use component probe/remove on wm8990 Kuninori Morimoto
2016-08-09  5:27 ` [PATCH 076/127] ASoC: use component probe/remove on wm8988 Kuninori Morimoto
2016-08-09  5:27 ` [PATCH 077/127] ASoC: use component probe/remove on wm8983 Kuninori Morimoto
2016-08-09  5:27 ` [PATCH 078/127] ASoC: use component probe/remove on wm8971 Kuninori Morimoto
2016-08-09  5:28 ` [PATCH 079/127] ASoC: use component probe/remove on wm8961 Kuninori Morimoto
2016-08-09  5:28 ` [PATCH 080/127] ASoC: use component probe/remove on wm8955 Kuninori Morimoto
2016-08-09  5:28 ` [PATCH 081/127] ASoC: use component probe/remove on wm8940 Kuninori Morimoto
2016-08-09  5:29 ` [PATCH 082/127] ASoC: use component probe/remove on wm8904 Kuninori Morimoto
2016-08-09  5:29 ` [PATCH 083/127] ASoC: use component probe/remove on wm8900 Kuninori Morimoto
2016-08-09  5:29 ` [PATCH 084/127] ASoC: use component probe/remove on wm8400 Kuninori Morimoto
2016-08-09  5:30 ` [PATCH 085/127] ASoC: use component probe/remove on wm8350 Kuninori Morimoto
2016-08-09  5:30 ` [PATCH 086/127] ASoC: use component probe/remove on wm5110 Kuninori Morimoto
2016-08-09  5:30 ` [PATCH 088/127] ASoC: use component probe/remove on wm5100 Kuninori Morimoto
2016-08-09  5:31 ` [PATCH 089/127] ASoC: use component probe/remove on wm2200 Kuninori Morimoto
2016-08-09  5:31 ` [PATCH 090/127] ASoC: use component probe/remove on wm2000 Kuninori Morimoto
2016-08-09  5:32 ` [PATCH 091/127] ASoC: use component probe/remove on wm0010 Kuninori Morimoto
2016-08-09  5:32 ` [PATCH 092/127] ASoC: use component probe/remove on wl1273 Kuninori Morimoto
2016-08-09  5:32 ` [PATCH 093/127] ASoC: use component probe/remove on uda1380 Kuninori Morimoto
2016-08-09  5:33 ` [PATCH 094/127] ASoC: use component probe/remove on uda134x Kuninori Morimoto
2016-08-09  5:33 ` [PATCH 095/127] ASoC: use component probe/remove on twl6040 Kuninori Morimoto
2016-08-09  5:34 ` [PATCH 096/127] ASoC: use component probe/remove on twl4030 Kuninori Morimoto
2016-08-09  5:34 ` [PATCH 097/127] ASoC: use component probe/remove on tlv320dac33 Kuninori Morimoto
2016-08-09  5:34 ` [PATCH 098/127] ASoC: use component probe/remove on tlv320aic32x4 Kuninori Morimoto
2016-08-09  5:35 ` [PATCH 099/127] ASoC: use component probe/remove on tlv320aic26 Kuninori Morimoto
2016-08-09  5:35 ` [PATCH 100/127] ASoC: use component probe/remove on stac9766 Kuninori Morimoto
2016-08-09  5:36 ` [PATCH 101/127] ASoC: use component probe/remove on sn95031 Kuninori Morimoto
2016-08-09  5:36 ` [PATCH 102/127] ASoC: use component probe/remove on rt5677 Kuninori Morimoto
2016-08-09  5:36 ` [PATCH 103/127] ASoC: use component probe/remove on rt5670 Kuninori Morimoto
2016-08-09  5:37 ` [PATCH 104/127] ASoC: use component probe/remove on rt5659 Kuninori Morimoto
2016-08-09  5:38 ` [PATCH 105/127] ASoC: use component probe/remove on rt5651 Kuninori Morimoto
2016-08-09  5:38 ` [PATCH 106/127] ASoC: use component probe/remove on rt5645 Kuninori Morimoto
2016-08-09  5:38 ` [PATCH 107/127] ASoC: use component probe/remove on rt5640 Kuninori Morimoto
2016-08-09  5:39 ` [PATCH 108/127] ASoC: use component probe/remove on rt5514 Kuninori Morimoto
2016-08-09  5:39 ` [PATCH 109/127] ASoC: use component probe/remove on rt298 Kuninori Morimoto
2016-08-09  5:40 ` [PATCH 110/127] ASoC: use component probe/remove on rt286 Kuninori Morimoto
2016-08-09  5:40 ` [PATCH 111/127] ASoC: use component probe/remove on nau8825 Kuninori Morimoto
2016-08-09  5:40 ` [PATCH 112/127] ASoC: use component probe/remove on ml26124 Kuninori Morimoto
2016-08-09  5:41 ` [PATCH 113/127] ASoC: use component probe/remove on mc13783 Kuninori Morimoto
2016-08-09  5:41 ` [PATCH 114/127] ASoC: use component probe/remove on max98926 Kuninori Morimoto
2016-08-09  5:41 ` [PATCH 115/127] ASoC: use component probe/remove on max98925 Kuninori Morimoto
2016-08-09  5:42 ` [PATCH 116/127] ASoC: use component probe/remove on max9867 Kuninori Morimoto
2016-08-09  5:42 ` [PATCH 117/127] ASoC: use component probe/remove on max9850 Kuninori Morimoto
2016-08-09  5:42 ` [PATCH 118/127] ASoC: use component probe/remove on max98357a Kuninori Morimoto
2016-08-09  5:43 ` [PATCH 119/127] ASoC: use component probe/remove on max98095 Kuninori Morimoto
2016-08-09  5:43 ` [PATCH 120/127] ASoC: use component probe/remove on max98090 Kuninori Morimoto
2016-08-09  5:43 ` [PATCH 121/127] ASoC: use component probe/remove on max98088 Kuninori Morimoto
2016-08-09  5:44 ` [PATCH 122/127] ASoC: use component probe/remove on jz4740 Kuninori Morimoto
2016-08-09  5:44 ` [PATCH 123/127] ASoC: use component probe/remove on hdac_hdmi Kuninori Morimoto
2016-08-09  5:44 ` [PATCH 124/127] ASoC: use component probe/remove on da9055 Kuninori Morimoto
2016-08-09  5:45 ` [PATCH 125/127] ASoC: use component probe/remove on da7219 Kuninori Morimoto
2016-08-09  5:45 ` [PATCH 126/127] ASoC: use component probe/remove on da7218 Kuninori Morimoto
2016-08-09  5:46 ` [PATCH 127/127] ASoC: remove codec duplicated .probe/.remove Kuninori Morimoto
2016-08-09  7:52 ` [PATCH 000/127] ASoC: codec cleanup - codec probe/remove Lars-Peter Clausen
2016-08-09 11:26   ` Mark Brown
2016-08-10  0:31     ` Kuninori Morimoto
2016-08-10 11:17       ` Mark Brown
2016-08-11  1:03         ` Kuninori Morimoto
2016-08-11 17:07           ` Mark Brown
2016-08-11 17:44           ` Lars-Peter Clausen
2016-08-12  1:27             ` Kuninori Morimoto
2016-08-12  9:33               ` Lars-Peter Clausen [this message]
2016-08-12 10:22                 ` Mark Brown
2016-08-22  2:15                 ` Kuninori Morimoto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c8b124b3-68fa-8dc3-37cb-451897822b66@metafoo.de \
    --to=lars@metafoo.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=horms@verge.net.au \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=lgirdwood@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.