All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
To: Takashi Iwai <tiwai@suse.de>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: alsa-devel@alsa-project.org,
	sound-open-firmware@alsa-project.org,
	Daniel Baluta <daniel.baluta@gmail.com>,
	liam.r.girdwood@linux.intel.com, vkoul@kernel.org,
	broonie@kernel.org, andriy.shevchenko@linux.intel.com,
	Alan Cox <alan@linux.intel.com>
Subject: Re: [PATCH v5 05/14] ASoC: SOF: Add PCM operations support
Date: Thu, 04 Apr 2019 12:13:43 -0700	[thread overview]
Message-ID: <f5346e231c80876f0fa74e1172d570b0033cbf42.camel@linux.intel.com> (raw)
In-Reply-To: <s5hd0m2caz6.wl-tiwai@suse.de>

On Thu, 2019-04-04 at 12:37 +0200, Takashi Iwai wrote:
> On Thu, 21 Mar 2019 17:10:07 +0100,
> Pierre-Louis Bossart wrote:
> > 
> > +/* this may get called several times by oss emulation */
> > +static int sof_pcm_hw_params(struct snd_pcm_substream *substream,
> > +			     struct snd_pcm_hw_params *params)
> > +{
> 
> ....
> > +	/* container size */
> > +	switch (params_width(params)) {
> > +	case 16:
> > +		pcm.params.sample_container_bytes = 2;
> > +		break;
> > +	case 24:
> > +		pcm.params.sample_container_bytes = 4;
> > +		break;
> > +	case 32:
> > +		pcm.params.sample_container_bytes = 4;
> > +		break;
> > +	default:
> > +		return -EINVAL;
> > +	}
> 
> This can be simply snd_pcm_format_physical_width() / 8.
> 
> > +static int sof_pcm_open(struct snd_pcm_substream *substream)
> > +{
> 
> ....
> > +	/* set any runtime constraints based on topology */
> > +	snd_pcm_hw_constraint_step(substream->runtime, 0,
> > +				   SNDRV_PCM_HW_PARAM_BUFFER_SIZE,
> > +				   le32_to_cpu(caps->period_size_min));
> > +	snd_pcm_hw_constraint_step(substream->runtime, 0,
> > +				   SNDRV_PCM_HW_PARAM_PERIOD_SIZE,
> > +				   le32_to_cpu(caps->period_size_min));
> 
> Is period_size_min in frames or in bytes?  The code below refers as
> byte size while this refers as frames, so they look inconsistent.
> 
> > +
> > +	/* set runtime config */
> > +	runtime->hw.info = SNDRV_PCM_INFO_MMAP |
> > +			  SNDRV_PCM_INFO_MMAP_VALID |
> > +			  SNDRV_PCM_INFO_INTERLEAVED |
> > +			  SNDRV_PCM_INFO_PAUSE |
> > +			  SNDRV_PCM_INFO_RESUME |
> > +			  SNDRV_PCM_INFO_NO_PERIOD_WAKEUP;
> 
> Does SOF support the full resume?  That is, the stream gets resumed
> at
> the exact position that was suspended.  Most devices can't, hence
> they
> don't set *_INFO_RESUME flag and let user-space restarting.
Hi Takashi,

Thanks for your comment. The SOF driver definitely cannot guarantee to
resume from the exact same position due to the fact that triggers for
the host dma and link dma are not synchronized and also IPC scheduling
will affect this. So we should remove INOF_RESUME from hw.info.

I do one follow up question for you. When a stream resumes/restarts
after suspend, we have the need for restoring the hw_params in the SOF
driver prior to handling the START trigger. I noticed that the
legacy/skylake driver does not seem to do this though. Do you have any
insights on what we might be missing in the SOF driver?

Thanks,
Ranjani

> 
> > +	runtime->hw.period_bytes_min = le32_to_cpu(caps-
> > >period_size_min);
> > +	runtime->hw.period_bytes_max = le32_to_cpu(caps-
> > >period_size_max);
> > +	runtime->hw.periods_min = le32_to_cpu(caps->periods_min);
> > +	runtime->hw.periods_max = le32_to_cpu(caps->periods_max);
> > +	runtime->hw.buffer_bytes_max = le32_to_cpu(caps-
> > >buffer_size_max);
> 
> These refer as bytes...
> 
> 
> thanks,
> 
> Takashi
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  parent reply	other threads:[~2019-04-04 19:13 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-21 16:10 [PATCH v5 00/14] ASoC: Sound Open Firmware (SOF) core Pierre-Louis Bossart
2019-03-21 16:10 ` [PATCH v5 01/14] ASoC: SOF: Add Sound Open Firmware driver core Pierre-Louis Bossart
2019-03-29 16:04   ` Takashi Iwai
2019-04-01 17:12     ` Pierre-Louis Bossart
2019-03-21 16:10 ` [PATCH v5 02/14] ASoC: SOF: Add Sound Open Firmware KControl support Pierre-Louis Bossart
2019-03-29 16:04   ` Takashi Iwai
2019-04-01 17:13     ` Pierre-Louis Bossart
2019-03-21 16:10 ` [PATCH v5 03/14] ASoC: SOF: Add driver debug support Pierre-Louis Bossart
2019-03-29 16:04   ` Takashi Iwai
2019-04-01 17:15     ` Pierre-Louis Bossart
2019-04-02  5:44       ` Mark Brown
2019-04-02 13:47         ` Pierre-Louis Bossart
2019-03-21 16:10 ` [PATCH v5 04/14] ASoC: SOF: Add support for IPC IO between DSP and Host Pierre-Louis Bossart
2019-03-21 16:10 ` [PATCH v5 05/14] ASoC: SOF: Add PCM operations support Pierre-Louis Bossart
2019-04-04 10:37   ` Takashi Iwai
2019-04-04 11:00     ` [Sound-open-firmware] " Liam Girdwood
2019-04-04 11:19     ` Keyon Jie
2019-04-04 13:53     ` Pierre-Louis Bossart
2019-04-04 14:03       ` Takashi Iwai
2019-04-04 19:13     ` Ranjani Sridharan [this message]
2019-04-05 12:30       ` Takashi Iwai
2019-04-05 14:24         ` Ranjani Sridharan
2019-04-08 19:31         ` Pierre-Louis Bossart
2019-04-09  8:04           ` Takashi Iwai
2019-04-09 13:50             ` Pierre-Louis Bossart
2019-04-09 14:23               ` [Sound-open-firmware] " Pierre-Louis Bossart
2019-04-09 15:48                 ` Takashi Iwai
2019-04-09 16:11                   ` Pierre-Louis Bossart
2019-04-09 16:52                     ` Takashi Iwai
2019-03-21 16:10 ` [PATCH v5 06/14] ASoC: SOF: Add support for loading topologies Pierre-Louis Bossart
2019-03-21 16:10 ` [PATCH v5 07/14] ASoC: SOF: Add DSP firmware logger support Pierre-Louis Bossart
2019-03-21 16:10 ` [PATCH v5 08/14] ASoC: SOF: Add DSP HW abstraction operations Pierre-Louis Bossart
2019-03-21 16:10 ` [PATCH v5 09/14] ASoC: SOF: Add firmware loader support Pierre-Louis Bossart
2019-04-04 13:25   ` Takashi Iwai
2019-04-04 13:59     ` [Sound-open-firmware] " Pierre-Louis Bossart
2019-04-04 14:05       ` Takashi Iwai
2019-03-21 16:10 ` [PATCH v5 10/14] ASoC: SOF: Add userspace ABI support Pierre-Louis Bossart
2019-03-21 16:10 ` [PATCH v5 11/14] ASoC: SOF: Add PM support Pierre-Louis Bossart
2019-04-04 13:31   ` Takashi Iwai
2019-03-21 16:10 ` [PATCH v5 12/14] ASoC: SOF: Add Nocodec machine driver support Pierre-Louis Bossart
2019-03-21 16:10 ` [PATCH v5 13/14] ASoC: SOF: Add xtensa support Pierre-Louis Bossart
2019-03-21 16:10 ` [PATCH v5 14/14] ASoC: SOF: Add utils Pierre-Louis Bossart
2019-04-04 13:34   ` Takashi Iwai

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=f5346e231c80876f0fa74e1172d570b0033cbf42.camel@linux.intel.com \
    --to=ranjani.sridharan@linux.intel.com \
    --cc=alan@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=broonie@kernel.org \
    --cc=daniel.baluta@gmail.com \
    --cc=liam.r.girdwood@linux.intel.com \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=sound-open-firmware@alsa-project.org \
    --cc=tiwai@suse.de \
    --cc=vkoul@kernel.org \
    /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.