Re: [PATCH v4 10/23] ASoC: simple-card: Wrong daifmt for CPU end of DPCM DAI link

From: Sameer Pujar
Date: Mon Jun 29 2020 - 23:48:15 EST




On 6/30/2020 6:26 AM, Kuninori Morimoto wrote:
External email: Use caution opening links or attachments


Hi Sameer

snd_soc_runtime_set_dai_fmt() {
...

if (cpu_dai->component->driver->non_legacy_dai_naming)
fmt = inv_dai_fmt;

...
}

Above flips polarity for 'cpu_dai' if 'non_legacy_dai_naming' flag is set.

1. Hence example mentioned in the commit message does not work if my 'cpu_dai'
driver does not have this flag set.
?
Do you want fo flip it ? or don't flip?
It is for Codec <-> Codec connection.

For DPCM links I don't want to flip based on one Codec reference. My goal was to make the binding work for multiple CPU/Codec link. Hence I thought it would be better to explicitly describe the 'Master' DAI. We can eventually get rid of 'codec' argument from simple_dai_link_of_dpcm().
2. While it is true that we consider reference of 'Codec' mode for simple CPU<->
Codec DAI links, for DPCM this does not seem flexible. For DPCM links CPU and
Codec are not directly connected (CPU<->Dummy or Dummy<->Codec). Please
consider, for example, if the DAI link has multiple CPU/Codecs. Which 'Codec'
reference needs to be considered? Isn't it better if we explicitly mention which
DAI we want to operate as 'Master'?
I think Lars-Peter has (had ?) plan for this SND_SOC_DAIFMT_CBx_CFx
flag flexibility ? Yes maybe it is needed for multi CPU/Codec system.

Thank you for your help !!

Best regards
---
Kuninori Morimoto