All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Cezary Rojewski <cezary.rojewski@intel.com>,
	Mark Brown <broonie@kernel.org>,
	Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Linux-ALSA <alsa-devel@alsa-project.org>
Subject: Re: About Cleanup ASoC
Date: Tue, 24 May 2022 11:11:02 -0500	[thread overview]
Message-ID: <5a6e4f90-7b61-376e-8f50-35f2a7dcf8c5@linux.intel.com> (raw)
In-Reply-To: <41033b5b-5bde-10a2-70e8-aa7482992235@intel.com>



On 5/24/22 10:06, Cezary Rojewski wrote:
> On 2022-05-24 3:24 PM, Mark Brown wrote:
>> On Tue, May 24, 2022 at 04:40:24AM +0000, Kuninori Morimoto wrote:
>>
>>> I have very interesting to clean up ASoC.
>>> I think it is still very complex, thus, non flexible.
>>> I'm thinking that we want to cleanup...
>>>
>>>     - Component with multi Card connection
>>
>> I'm really not certain that we want components in multiple cards at all,
>> I know the Intel AVS people wanted this but I'm concerned that if a
>> single component is in multiple cards we'll inevitably have connections
>> between the cards which each needs to take into consideration, that
>> could be routing or something else like clock configuration.
> 
> Hello,
> 
> It seems explanation of design of the avs-driver had some shortcomings.
> The AVS people (like me) are to blame for this :S
> 
> The exact opposite is true - we do not want 1:N component:card relation.
> Separate set of components and a separate card (machine board) per
> logically separate audio device is the approach of choice here. It has
> its benefits of simplifying PM and allowing for better user experience -
> probe() failure of one device does not prevent other devices from
> enumerating.

The separate card solution works for ACPI devices only because we don't
have any structured information. I don't know how it would work for
Device Tree. There's no mechanism I am aware of by which the platform
driver would be informed of board requirements and would split its DAIs
in different components required by that board. It might be
worked-around by having one component per DAI though, but that
waters-down the notion of component driver quite a bit.

If you have any data connection or loopbacks between cards, or shared
clocks, then you have DAPM events that are interesting to propagate.
Power management is not 'simple' or even 'simpler' to me.

We can also debate forever on probe failures, the user will only see a
problem when they try to use the missing devices. Fail big and fail
early is the best model I've seen so far, much easier to support and report.

I am not saying having multiple cards is a bad idea, just that there are
a number of technical opens with strong implications on the
implementation and scaling.

  reply	other threads:[~2022-05-24 16:12 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-24  4:40 About Cleanup ASoC Kuninori Morimoto
2022-05-24 11:17 ` Amadeusz Sławiński
2022-05-24 14:53   ` Cezary Rojewski
2022-05-25  2:54     ` Kuninori Morimoto
2022-05-25 16:11       ` Pierre-Louis Bossart
2022-05-26  2:13         ` Kuninori Morimoto
2022-05-26  9:57           ` Amadeusz Sławiński
2022-05-26 13:48             ` Pierre-Louis Bossart
2022-05-26 13:58               ` Mark Brown
2022-05-26 14:17               ` Cezary Rojewski
2022-05-26 14:45                 ` Pierre-Louis Bossart
2022-05-27  6:50                   ` Kuninori Morimoto
2022-05-31 12:25                     ` Mark Brown
2022-06-01  6:13                       ` Kuninori Morimoto
2022-06-02  9:26                     ` Cezary Rojewski
2022-06-02 23:57                       ` Kuninori Morimoto
2022-06-07  7:46                         ` Cezary Rojewski
2022-06-09  0:07                           ` Kuninori Morimoto
2022-05-27  8:38                   ` Cezary Rojewski
2022-05-31 14:37                     ` Pierre-Louis Bossart
2022-05-24 13:24 ` Mark Brown
2022-05-24 15:06   ` Cezary Rojewski
2022-05-24 16:11     ` Pierre-Louis Bossart [this message]
2022-05-25  3:02       ` 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=5a6e4f90-7b61-376e-8f50-35f2a7dcf8c5@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=cezary.rojewski@intel.com \
    --cc=kuninori.morimoto.gx@renesas.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.