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
[Index of Archives]
[Pulseaudio]
[Linux Audio Users]
[ALSA Devel]
[Fedora Desktop]
[Fedora SELinux]
[Big List of Linux Books]
[Yosemite News]
[KDE Users]