[alsa-devel] [Sound-open-firmware] [PATCH v5 05/14] ASoC: SOF: Add PCM operations support

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Tue Apr 9 16:23:17 CEST 2019


> ok, thanks for confirming. we'll remove the INFO_RESUME flag in SOF and 
> follow-up with the removal on all other Intel drivers. Thanks for 
> enlightening us on this.

Actually one more question related to the documentation, which reads

"Note that the trigger with SUSPEND can always be called when 
snd_pcm_suspend_all() is called, regardless of the SNDRV_PCM_INFO_RESUME 
flag. The RESUME flag affects only the behavior of snd_pcm_resume(). 
(Thus, in theory, SNDRV_PCM_TRIGGER_RESUME isn’t needed to be handled in 
the trigger callback when no SNDRV_PCM_INFO_RESUME flag is set. But, 
it’s better to keep it for compatibility reasons.)"

I could not figure out what the last sentence means. It's my 
understanding that the resume_trigger will never be called with the code 
flow below when INFO_RESUME isn't declared. Would you mind clarifying 
what this compatibility might be? Thanks!

static int snd_pcm_pre_resume(struct snd_pcm_substream *substream, int 
state)
{
	struct snd_pcm_runtime *runtime = substream->runtime;
	if (!(runtime->info & SNDRV_PCM_INFO_RESUME))
		return -ENOSYS;

res = ops->pre_action(substream, state);
if (res < 0)
    	return res; <<< return means trigger_resume is not called?
res = ops->do_action(substream, state);

static const struct action_ops snd_pcm_action_resume = {
	.pre_action = snd_pcm_pre_resume,
	.do_action = snd_pcm_do_resume,



More information about the Alsa-devel mailing list