About Cleanup ASoC

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Wed May 25 18:11:41 CEST 2022



On 5/24/22 21:54, Kuninori Morimoto wrote:
> 
> Hi Amadeusz, Cezary
> 
> Thank you for your feedback.
> 
>>> I would like to understand the problem here, before I start to discuss 
>>> potential solutions. You seem to be saying that there is some kind of 
>>> card<->component connection limitation? Is there specific use case you 
>>> have in mind?
>>>
>>> Personally I don't see a reason for connecting component to multiple 
>>> cards. Even if it would be possible it soon becomes problematic when you 
>>> for example try to decide which card controls clock on component. As 
>>> I've wrote I would like to first see some use case definition, before 
>>> jumping into a rewrite.
> 
> Sorry, my head was biased.
> I thought people are thinking same things as me.
> 
> In my case, my CPU Component has many channels.
> We have "basic board" which has simple sound system,
> it is using CPU ch0 for example.
> 
> And customer can expand it by using "expansion board",
> it can use CPU ch1 or later channels.

did you mean 'channels' or 'streams'?

I think it's very hard to expose a different card for content that need
to start at the same time and remain phase-synchronized.

If however the 'ch0' and 'ch1' can be independent content then this
configuration would make sense indeed, and it would be quite similar to
the ideas on the Intel side.

One example is e.g. Chromebooks, where we typically have a stream for
headphone/headset, and another for amplifiers. But there are cases where
the jack is not present and the headphone is not populated on a board,
so we end-up having multiple versions of the card, with and without the
headphone path. It could be argued that the headphone could be handled
on a different card. That information is however not known to the 'cpu'
parts, it's really a board-level decision.

> 
> 	+-- basic board --------+
> 	|+--------+             |
> 	|| CPU ch0| <--> CodecA |
> 	||     ch1| <-+         |
> 	|+--------+   |         |
> 	+-------------|---------+
> 
> 	+-- expansion board ----+
> 	|             |         |
> 	|             +-> CodecB|
> 	+-----------------------+
> 
> Both sounds are using same CPU Component, but different Codecs.
> 
> I'm not sure how to count the Card, but
> "basic     board sound" is 1st card,
> "expansion board sound" is 2nd card for us in intuitively.
> 
> But, because we can't use same Component (= CPU) to different Cards,
> we need to merge both sound into one Card.
> We can do that, but not intuitively, and needs overwrite settings.


More information about the Alsa-devel mailing list