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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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


Hi Sameer

  simple-audio-card,dai-link@xxx {
      format = "i2s";
      bitclock-master=<&cpu1>;
      frame-master=<&cpu1>;

      cpu1: cpu@0 {
          ...
      };

      codec@0 {
          ...
      };

      ...
  };

In above case CPU is expected to be configured as a master and Codec as
a slave device. But both CPU/Codec are being configured as slave devices.
This happens because asoc_simple_parse_daifmt() uses Codec reference and
sets up the 'dai_link->dai_fmt' accordingly while parsing both CPU and
Codec.
I'm sorry but I don't 100% understand about this case...
asoc_simple_parse_daifmt() should work in this case

The reason why it needs codec node is that
SND_SOC_DAIFMT_CBx_CFx are "Codec" base Master/Slave.

Currently soc-core has following code snippet,

/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.

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'?


Thank you for your help !!

Best regards
---
Kuninori Morimoto




[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux