Re: [PATCH v4 15/23] ASoC: soc-core: Identify 'no_pcm' DAI links for DPCM

From: Sameer Pujar
Date: Wed Jul 01 2020 - 23:48:26 EST




On 7/2/2020 6:22 AM, Kuninori Morimoto wrote:
External email: Use caution opening links or attachments


Hi Sameer

At least my CPU driver doesn't use component:pcm_construct
but is using DAI:pcm_new for some reasons.
I'm not sure checking DAI:pcm here is enough, or not...
OK. If adding DAI:pcm_new above here is not sufficient, then a flag
can be used to describe FE component? or is there a better
alternative?

soc_component_is_pcm() is called from simple_dai_link_of_dpcm :: "FE" side.

Yes I had to use this on "FE" side only because I wanted to find a real "FE" in FE<->BE and BE<->BE links. Please have a look at patch [23/23] for the sound DT binding I am using. Basically I want to connect multiple components in a chained fashion (FE <-> BE1 <-> BE2 ... <BEx>). Some of these BEs can be SoC components like resampler/mixer/mux/de-mux etc., the HW I am using has a cross bar which allows me to select/connect BEs in any order and I am trying to have the same flexibility here. Hence I only want to create PCM devices for real "FE" and trying to use simple-card as much as possible. More details about the HW and problems were discussed in [0].

[0] https://lkml.org/lkml/2020/4/30/519

I wonder component->driver->non_legacy_dai_naming can't work for you ?

I see currently in simple-card driver that, BE<->BE link would be treated as CODEC<->CODEC link if 'non_legacy_dai_naming' flag is set at both ends of BE. Do we need to set this flag for all BE?
However I am not sure how this will work out for a BE<->BE DPCM DAI link considering the fact that I want to use chain of components and I guess routing map would get complicated. Also going by the flag name it was not meant to differentiate between a FE and BE?
Thank you for your help !!

Best regards
---
Kuninori Morimoto