On Thu 09 May 2024 at 05:50, Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> wrote: > Hi Jerome > > I need your help > >> > I have tested this series on an Amlogic device (vim3l) >> > This brings warnings for cases which are perfectly fine. >> > >> > For example, one of the DPCM backends is the TDM interface. This >> > interface is capable of both playback and capture. It can be associated >> > with any i2s/TDM codec. >> > >> > The codec may do playback and capture too, but it >> > may also do a single direction. Then usual example is the hdmi codec >> > which does playback only. >> > >> > In this case I get: >> > axg-sound-card sound: CPU capture is available but Codec capture is not (be.dai-link-6) Please update Codec driver >> > >> > I don't think this is right. >> >> Hmm..., I'm confusing >> Does it mean you want to use "playback only" on it ? >> If so, did you get below warning too ? >> "both playback/capture are available, but not using playback_only flag (%s)\n", >> I've checked. No such trace, no. >> If not, can you please fill below ? >> >> Card >> dpcm_playback = (0 or 1) >> dpcm_capture = (0 or 1) >> playback_only = (0 or 1) >> capture_only = (0 or 1) >> BE.CPU >> playback = (available, not available) >> capture = (available, not available) >> BE.Codec >> playback = (available, not available) >> capture = (available, not available) >> Expect >> playback = (available, not available) >> capture = (available, not available) I'm not too sure I undestand this. I'll try to illustrate the case raising the warning as precisely as possible bellow > > I need feedback from you, it is still not clear for me. Sorry. There are some national holidays in France. I'm not spending much time near the keyboard ATM > But I noticed that we want to update below. I'm happy if it can solve your > issue. > > - if (has_playback && !has_playback_both) > + if (has_playback && !has_playback_both && !dai_link->capture_only) > dev_warn(rtd->card->dev, ...) > > - if (has_capture && !has_capture_both) > + if (has_capture && !has_capture_both && !dai_link->playback_only) > dev_warn(rtd->card->dev, ...) > Honestly I'm a bit lost in all these flag :/ Some for BE error reported here is the full picture PCM =====|===== V -------- |CPU FE| This CPU (FIFO) does Playback only. -------- | Because of the CPU, link a playback only one V ---------- |Codec FE| Using Dummy here ---------- | V ~~~~~~~~~~ |Routing | ~~~~~~~~~~ ^ | V -------- |CPU BE| This is the TDM interface. Capable of both Playback and -------- Capture. Through routing it can be connected to Playback ^ and/or Capture FE CPUs. | | V ------------- |BE Codec(s)| Possibly N codecs, supporting both direction, or a ------------- Single one, or one direction each. In this particular case | it is Playback only C2C. | ---- V ------------------ From Here, it is specific to HDMI ------------- ~~~~~~~~~~~~~ |C2C Routing| SoC has routing has mux between the different TDM ~~~~~~~~~~~~~ interfaces and the HDMI controller | | V --------- |C2C CPU| This is a playback only CPU for HDMI --------- | V ----------- |HDMI Codec| The usual HDMI codec, playback only ----------- Better picture are available in the SoC doc. There is publicly available datasheet here [1] Audio paths are displayed in Section 9, page 807, Figure 9-1. A TDM interface in this figure is combination of a TDMOUT and a TDMIN (axg-tdm-formatter.c). The axg-tdm-interface.c joins them because they use the same pads and clocks. [1]: https://dl.khadas.com/products/vim3l/datasheet/s905d3_datasheet_0.2_wesion.pdf > > > Thank you for your help !! > > Best regards > --- > Renesas Electronics > Ph.D. Kuninori Morimoto -- Jerome