Hi Jerome
Thank you for your reply
> >> 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.
OK, thanks
> >> 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
Thanks
Because you got was
(A) axg-sound-card sound: CPU capture is available but Codec capture is
not (be.dai-link-6) Please update Codec driver
It is for BE. And validation check is for each rtd only, this means it checks
BE only, relationship with other rtd is not related here.
> --------
> |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.
So, I think the warning happen here.
The validation check is checking this BE only.
As I mentioned above, you use this BE through playback only FE and/or C2C,
but that relationship is not related to here.
According to above explanation, this BE itself is available for both
playback and capture. And you didn't get below warning, I guess this BE
has both dpcm_playback/capture flag, and no xxx_only flag.
"both playback/capture are available, but not using playback_only
flag (%s)\n",
Before my patch, the validation check is checks CPU-BE only, but it also
checks BE-Codec after my patch, and you got the warning (A).
So, I guess your BE-Codec simply missing capture channels_min settings.
Please double check it, or please tell me which codec driver this BE is
using.
static struct snd_soc_dai_driver xxx_dai = {
...
.playback = {
...
.channels_min = x,
...
},
.capture = {
...
=> .channels_min = x,
...
},
},
> 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 :/
Thanks, no problem, me too :9
Unfortunately and confusingly, there are many combination exist around here.
But because of your feedback, I noticed one missing pattern. Thanks
Thank you for your help !!
Best regards
---
Renesas Electronics
Ph.D. Kuninori Morimoto
[Index of Archives]
[Pulseaudio]
[Linux Audio Users]
[ALSA Devel]
[Fedora Desktop]
[Fedora SELinux]
[Big List of Linux Books]
[Yosemite News]
[KDE Users]