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

Takashi Iwai tiwai at suse.de
Tue Apr 9 17:48:49 CEST 2019


On Tue, 09 Apr 2019 16:23:17 +0200,
Pierre-Louis Bossart wrote:
> 
> 
> > 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!

Well, in the above "better to keep it" text -- here "it" was meant as
SNDRV_PCM_TRIGGER_RESUME case handling in the trigger callback, not as
SNDRV_PCM_INFO_RESUME flag.  That is, the above recommends a trigger
callback like below would keep SNDRV_PCM_TRIGGER_RESUME although it
won't be called practically:

static int foo_trigger(....)
{
	switch (cmd) {
	case SNDRV_PCM_TRIGGER_START:
	case SNDRV_PCM_TRIGGER_RESUME:
		do_start();
		break;
	case SNDRV_PCM_TRIGGER_STOP:
	case SNDRV_PCM_TRIGGER_SUSPEND:
		do_stop();
		break;
	....
	}
	....
}


This text needs clearly a better rephrasing...


Takashi


More information about the Alsa-devel mailing list