linux-amlogic.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Jerome Brunet <jbrunet@baylibre.com>
To: "Pierre-Louis Bossart" <pierre-louis.bossart@linux.intel.com>,
	"张 宁" <zhangn1985@outlook.com>
Cc: "linux-amlogic@lists.infradead.org" <linux-amlogic@lists.infradead.org>
Subject: Re: S905x: No sound with error log.
Date: Fri, 17 Jul 2020 12:12:23 +0200	[thread overview]
Message-ID: <1jpn8upi0o.fsf@starbuckisacylon.baylibre.com> (raw)
In-Reply-To: <5ebc4187-54c0-ce72-c7b0-2c88b0e24059@linux.intel.com>


On Thu 16 Jul 2020 at 04:37, Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> wrote:

> On 7/15/20 5:04 PM, 张 宁 wrote:
>> Hi,
>> 
>> Recent asoc change makes S905x audio card prob failed.
>> 
>> [    6.338428] gx-sound-card sound: CPU DAI I2S Encoder for rtd be.dai-link-1 does not support capture
>> [    6.342176] gx-sound-card sound: ASoC: can't create pcm be.dai-link-1 :-22
>> 
>> Good: 5.7.3
>> Bad: 5.7.6
>> 
>> After read patches, I find suspect:
>> 
>> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/sound/soc?h=v5.7.8&id=1bb707fbfd5c246028d76b8f11a19dfd118d6306
>> 
>> this patch doesn’t allow playback only or capture only dai-link. Why?
>
> it does, but you need to make sure the capabilities of a dai match the 
> capability of a dailink they are part of. The be-dai-link1 can support 
> capture but the I2S encoder so doesn't you have an invalid configuration.
>
> Could this be the problem be with this code:
>
> int meson_card_set_be_link(struct snd_soc_card *card,
> 			   struct snd_soc_dai_link *link,
> 			   struct device_node *node)
> {
> 	struct snd_soc_dai_link_component *codec;
> 	struct device_node *np;
> 	int ret, num_codecs;
>
> 	link->no_pcm = 1;
> 	link->dpcm_playback = 1;
> 	link->dpcm_capture = 1;
>

Hi Pierre-Louis,

actually this patch changed the meaning of the dpcm_playback and
dpcm_capture from "is_allowed" to "is_required" and it broke this card
and another one for me.

Yes the flag are "blindly" set because with the old meanning, there was
no reason to disallow any direction. Also the card driver only handles
DT phandle and does not know much about the DAI (BE) caps.

Your change in ASoC core was meant to add support for multi cpu BE link
but:
 - it changed the meaning of the flags
 - it forces all CPU on the BE link to share the same direction
 capability. 

> Setting the flags blindly is not so good. A helper was added recently, 
> see 25612477d20b ('ASoC: soc-dai: set dai_link dpcm_ flags with a
> helper')

Same with this change, if any codec does not support a stream direction,
it gets disabled. But it is uncommon to have link with multiple codec,
one for each stream direction. The commit above would break those cards

Could you tell why it was not possible to retain the previous logic
which was : disable the stream direction if
 - dpcm_{capture,playback) is false OR
 - no codec support the direction (same would apply to cpu)

??

>
>
> _______________________________________________
> linux-amlogic mailing list
> linux-amlogic@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-amlogic


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

  reply	other threads:[~2020-07-17 10:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-15 22:04 S905x: No sound with error log 张 宁
2020-07-16  2:37 ` Pierre-Louis Bossart
2020-07-17 10:12   ` Jerome Brunet [this message]
     [not found]     ` <MWHPR1601MB1343831C2913ECB7D77DB04DCD700@MWHPR1601MB1343.namprd16.prod.outlook.com>
2020-07-31  8:38       ` 回复: " Jerome Brunet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1jpn8upi0o.fsf@starbuckisacylon.baylibre.com \
    --to=jbrunet@baylibre.com \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=zhangn1985@outlook.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).