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