All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: "Lu, Brent" <brent.lu@intel.com>,
	Adam Thomson <Adam.Thomson.Opensource@diasemi.com>,
	"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>
Cc: Support Opensource <Support.Opensource@diasemi.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Takashi Iwai <tiwai@suse.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Chiang, Mac" <mac.chiang@intel.com>,
	Mark Brown <broonie@kernel.org>,
	"cychiang@google.com" <cychiang@google.com>,
	Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Subject: Re: [alsa-devel] [PATCH] ASoC: da7219: check SRM lock in trigger callback
Date: Tue, 11 Feb 2020 10:30:35 -0600	[thread overview]
Message-ID: <855c88fb-4438-aefb-ac9b-a9a5a2dc8caa@linux.intel.com> (raw)
In-Reply-To: <SN6PR11MB26702B2E7E5F705425517F4897180@SN6PR11MB2670.namprd11.prod.outlook.com>


>> Could ensure? This change seems specific to Intel DSP based systems, at
>> least from the description. Having looked through the core, the trigger code
>> for a codec is seemingly always called before the trigger for the CPU. How will
>> this work for other platforms, assuming their clocks are enabled in the CPU
>> DAI trigger function by default?
>>
>> Can we always guarantee the CPU side isn't going to send anything other
>> than 0s until after SRM has locked?

Not with the default mode for the SSP, all clocks are enabled at trigger 
time.
We can enable the MCLK and BCLK ahead of time (which would require a 
change in firmware). But if we want to enable the FSYNC (word-clock), 
then we have to trigger DMA transfers with pretend-buffers, this is a 
lot more invasive.

So just to be clear, which of the MCLK, BCLK, FSYNC do you need enabled?

> I think the patch is for those systems which enable I2S clocks in pcm_start instead
> of pcm_prepare. It has no effect on systems already be able to turn on clocks in
> supply widgets or set_bias_level() function.
> 
> If the trigger type in the DAI link is TRIGGER_PRE, then the trigger function of FE port
> (component or CPU DAI) will be called before codec driver's trigger function. In this
> case we will be able to turn on the clock in time. However, if the trigger type is
> TRIGGER_POST, then the patch does not help because just like what you said, codec
> driver's trigger function is called first.

IIRC we recently did a change to deal with underflows. Ranjani, can you 
remind us what the issue was?
Thanks
-Pierre

WARNING: multiple messages have this Message-ID (diff)
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: "Lu, Brent" <brent.lu@intel.com>,
	Adam Thomson <Adam.Thomson.Opensource@diasemi.com>,
	"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>
Cc: Support Opensource <Support.Opensource@diasemi.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Takashi Iwai <tiwai@suse.com>,
	"Chiang, Mac" <mac.chiang@intel.com>,
	Mark Brown <broonie@kernel.org>,
	Ranjani Sridharan <ranjani.sridharan@linux.intel.com>,
	"cychiang@google.com" <cychiang@google.com>
Subject: Re: [alsa-devel] [PATCH] ASoC: da7219: check SRM lock in trigger callback
Date: Tue, 11 Feb 2020 10:30:35 -0600	[thread overview]
Message-ID: <855c88fb-4438-aefb-ac9b-a9a5a2dc8caa@linux.intel.com> (raw)
In-Reply-To: <SN6PR11MB26702B2E7E5F705425517F4897180@SN6PR11MB2670.namprd11.prod.outlook.com>


>> Could ensure? This change seems specific to Intel DSP based systems, at
>> least from the description. Having looked through the core, the trigger code
>> for a codec is seemingly always called before the trigger for the CPU. How will
>> this work for other platforms, assuming their clocks are enabled in the CPU
>> DAI trigger function by default?
>>
>> Can we always guarantee the CPU side isn't going to send anything other
>> than 0s until after SRM has locked?

Not with the default mode for the SSP, all clocks are enabled at trigger 
time.
We can enable the MCLK and BCLK ahead of time (which would require a 
change in firmware). But if we want to enable the FSYNC (word-clock), 
then we have to trigger DMA transfers with pretend-buffers, this is a 
lot more invasive.

So just to be clear, which of the MCLK, BCLK, FSYNC do you need enabled?

> I think the patch is for those systems which enable I2S clocks in pcm_start instead
> of pcm_prepare. It has no effect on systems already be able to turn on clocks in
> supply widgets or set_bias_level() function.
> 
> If the trigger type in the DAI link is TRIGGER_PRE, then the trigger function of FE port
> (component or CPU DAI) will be called before codec driver's trigger function. In this
> case we will be able to turn on the clock in time. However, if the trigger type is
> TRIGGER_POST, then the patch does not help because just like what you said, codec
> driver's trigger function is called first.

IIRC we recently did a change to deal with underflows. Ranjani, can you 
remind us what the issue was?
Thanks
-Pierre
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2020-02-11 18:08 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-10  8:16 [PATCH] ASoC: da7219: check SRM lock in trigger callback Brent Lu
2020-02-10  8:16 ` [alsa-devel] " Brent Lu
2020-02-10 14:18 ` Pierre-Louis Bossart
2020-02-10 14:18   ` Pierre-Louis Bossart
2020-02-10 15:44   ` Curtis Malainey
2020-02-10 16:07     ` Pierre-Louis Bossart
2020-02-10 16:07       ` Pierre-Louis Bossart
2020-02-10 16:18       ` Curtis Malainey
2020-02-11  4:00         ` Fletcher Woodruff
2020-02-11  4:00           ` Fletcher Woodruff
2020-02-10 14:32 ` Adam Thomson
2020-02-10 14:32   ` [alsa-devel] " Adam Thomson
2020-02-11 10:08   ` Lu, Brent
2020-02-11 10:08     ` [alsa-devel] " Lu, Brent
2020-02-11 16:30     ` Pierre-Louis Bossart [this message]
2020-02-11 16:30       ` Pierre-Louis Bossart
2020-02-11 20:37       ` Sridharan, Ranjani
2020-02-11 21:12         ` Pierre-Louis Bossart
2020-02-11 21:12           ` Pierre-Louis Bossart
2020-02-11 21:37           ` Sridharan, Ranjani
2020-02-11 21:49             ` Pierre-Louis Bossart
2020-02-11 21:49               ` Pierre-Louis Bossart
2020-02-12 10:16               ` Adam Thomson
2020-02-12 10:16                 ` Adam Thomson
2020-02-12 11:59                 ` Mark Brown
2020-02-12 11:59                   ` Mark Brown
2020-02-12 15:48                 ` Pierre-Louis Bossart
2020-02-12 15:48                   ` Pierre-Louis Bossart
2020-02-12 17:01                   ` Adam Thomson
2020-02-12 17:01                     ` Adam Thomson
2020-02-19  5:57                 ` Lu, Brent
2020-02-19 10:05                   ` Adam Thomson
2020-02-10 18:59 ` Mark Brown
2020-02-10 18:59   ` [alsa-devel] " Mark Brown
2020-02-11 10:19   ` Lu, Brent
2020-02-11 10:19     ` [alsa-devel] " Lu, Brent

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=855c88fb-4438-aefb-ac9b-a9a5a2dc8caa@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=Adam.Thomson.Opensource@diasemi.com \
    --cc=Support.Opensource@diasemi.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=brent.lu@intel.com \
    --cc=broonie@kernel.org \
    --cc=cychiang@google.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mac.chiang@intel.com \
    --cc=ranjani.sridharan@linux.intel.com \
    --cc=tiwai@suse.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.