Re: [PATCH 6/6] ASoC: soc-core: add snd_soc_stream_stop()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

> > > +void snd_soc_stream_stop(struct snd_soc_pcm_runtime *rtd, int stream)
> > > +{
> > > +	if (stream == SNDRV_PCM_STREAM_PLAYBACK) {
> > > +		if (snd_soc_runtime_ignore_pmdown_time(rtd)) {
> > > +			/* powered down playback stream now */
> > > +			snd_soc_dapm_stream_event(rtd,
> > > +						  SNDRV_PCM_STREAM_PLAYBACK,
> > > +						  SND_SOC_DAPM_STREAM_STOP);
> > > +		} else {
> > > +			/* start delayed pop wq here for playback streams */
> > > +			rtd->pop_wait = 1;
> > > +			queue_delayed_work(system_power_efficient_wq,
> > > +					   &rtd->delayed_work,
> > > +					   msecs_to_jiffies(rtd->pmdown_time));
> > > +		}
> > > +	} else {
> > > +		/* capture streams can be powered down now */
> > > +		snd_soc_dapm_stream_event(rtd, SNDRV_PCM_STREAM_CAPTURE,
> > > +					  SND_SOC_DAPM_STREAM_STOP);
> > > +	}
> > > +}
> > > +EXPORT_SYMBOL_GPL(snd_soc_stream_stop);

Hmm...
I noticed that soc_compr_free_fe(), dpcm_fe_dai_shutdown() are directly
calling SND_SOC_DAPM_STREAM_STOP without caring pmdown time / delayed work.
Can we use snd_soc_dapm_stream_stop() for these, too ?

	static int dpcm_fe_dai_shutdown(struct snd_pcm_substream *substream)
	{
		...
		/* run the stream event for each BE */
=>		dpcm_dapm_stream_event(fe, stream, SND_SOC_DAPM_STREAM_STOP);
		...
	}

	static int soc_compr_free_fe(struct snd_compr_stream *cstream)
	{
		...
=>		dpcm_dapm_stream_event(fe, stream, SND_SOC_DAPM_STREAM_STOP);
		...
	}

Thank you for your help !!
Best regards
---
Kuninori Morimoto
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux