Lines Matching refs:rtd

31 	struct snd_soc_pcm_runtime *rtd = cstream->private_data;  in soc_compr_open()  local
32 struct snd_soc_platform *platform = rtd->platform; in soc_compr_open()
35 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_compr_open()
46 if (rtd->dai_link->compr_ops && rtd->dai_link->compr_ops->startup) { in soc_compr_open()
47 ret = rtd->dai_link->compr_ops->startup(cstream); in soc_compr_open()
49 pr_err("compress asoc: %s startup failed\n", rtd->dai_link->name); in soc_compr_open()
54 snd_soc_runtime_activate(rtd, cstream->direction); in soc_compr_open()
56 mutex_unlock(&rtd->pcm_mutex); in soc_compr_open()
64 mutex_unlock(&rtd->pcm_mutex); in soc_compr_open()
158 struct snd_soc_pcm_runtime *rtd = in close_delayed_work() local
160 struct snd_soc_dai *codec_dai = rtd->codec_dai; in close_delayed_work()
162 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in close_delayed_work()
164 dev_dbg(rtd->dev, "ASoC: pop wq checking: %s status: %s waiting: %s\n", in close_delayed_work()
167 rtd->pop_wait ? "yes" : "no"); in close_delayed_work()
170 if (rtd->pop_wait == 1) { in close_delayed_work()
171 rtd->pop_wait = 0; in close_delayed_work()
172 snd_soc_dapm_stream_event(rtd, SNDRV_PCM_STREAM_PLAYBACK, in close_delayed_work()
176 mutex_unlock(&rtd->pcm_mutex); in close_delayed_work()
181 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in soc_compr_free() local
182 struct snd_soc_platform *platform = rtd->platform; in soc_compr_free()
183 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_compr_free()
184 struct snd_soc_dai *codec_dai = rtd->codec_dai; in soc_compr_free()
187 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_compr_free()
194 snd_soc_runtime_deactivate(rtd, stream); in soc_compr_free()
205 if (rtd->dai_link->compr_ops && rtd->dai_link->compr_ops->shutdown) in soc_compr_free()
206 rtd->dai_link->compr_ops->shutdown(cstream); in soc_compr_free()
212 if (snd_soc_runtime_ignore_pmdown_time(rtd)) { in soc_compr_free()
213 snd_soc_dapm_stream_event(rtd, in soc_compr_free()
217 rtd->pop_wait = 1; in soc_compr_free()
219 &rtd->delayed_work, in soc_compr_free()
220 msecs_to_jiffies(rtd->pmdown_time)); in soc_compr_free()
224 snd_soc_dapm_stream_event(rtd, in soc_compr_free()
229 mutex_unlock(&rtd->pcm_mutex); in soc_compr_free()
283 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in soc_compr_trigger() local
284 struct snd_soc_platform *platform = rtd->platform; in soc_compr_trigger()
285 struct snd_soc_dai *codec_dai = rtd->codec_dai; in soc_compr_trigger()
288 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_compr_trigger()
306 mutex_unlock(&rtd->pcm_mutex); in soc_compr_trigger()
367 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in soc_compr_set_params() local
368 struct snd_soc_platform *platform = rtd->platform; in soc_compr_set_params()
371 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_compr_set_params()
385 if (rtd->dai_link->compr_ops && rtd->dai_link->compr_ops->set_params) { in soc_compr_set_params()
386 ret = rtd->dai_link->compr_ops->set_params(cstream); in soc_compr_set_params()
392 snd_soc_dapm_stream_event(rtd, SNDRV_PCM_STREAM_PLAYBACK, in soc_compr_set_params()
395 snd_soc_dapm_stream_event(rtd, SNDRV_PCM_STREAM_CAPTURE, in soc_compr_set_params()
399 rtd->pop_wait = 0; in soc_compr_set_params()
400 mutex_unlock(&rtd->pcm_mutex); in soc_compr_set_params()
402 cancel_delayed_work_sync(&rtd->delayed_work); in soc_compr_set_params()
407 mutex_unlock(&rtd->pcm_mutex); in soc_compr_set_params()
468 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in soc_compr_get_params() local
469 struct snd_soc_platform *platform = rtd->platform; in soc_compr_get_params()
472 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_compr_get_params()
477 mutex_unlock(&rtd->pcm_mutex); in soc_compr_get_params()
484 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in soc_compr_get_caps() local
485 struct snd_soc_platform *platform = rtd->platform; in soc_compr_get_caps()
488 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_compr_get_caps()
493 mutex_unlock(&rtd->pcm_mutex); in soc_compr_get_caps()
500 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in soc_compr_get_codec_caps() local
501 struct snd_soc_platform *platform = rtd->platform; in soc_compr_get_codec_caps()
504 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_compr_get_codec_caps()
509 mutex_unlock(&rtd->pcm_mutex); in soc_compr_get_codec_caps()
515 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in soc_compr_ack() local
516 struct snd_soc_platform *platform = rtd->platform; in soc_compr_ack()
519 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_compr_ack()
524 mutex_unlock(&rtd->pcm_mutex); in soc_compr_ack()
531 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in soc_compr_pointer() local
532 struct snd_soc_platform *platform = rtd->platform; in soc_compr_pointer()
534 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_compr_pointer()
539 mutex_unlock(&rtd->pcm_mutex); in soc_compr_pointer()
546 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in soc_compr_copy() local
547 struct snd_soc_platform *platform = rtd->platform; in soc_compr_copy()
550 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_compr_copy()
555 mutex_unlock(&rtd->pcm_mutex); in soc_compr_copy()
562 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in soc_compr_set_metadata() local
563 struct snd_soc_platform *platform = rtd->platform; in soc_compr_set_metadata()
575 struct snd_soc_pcm_runtime *rtd = cstream->private_data; in soc_compr_get_metadata() local
576 struct snd_soc_platform *platform = rtd->platform; in soc_compr_get_metadata()
623 int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num) in snd_soc_new_compress() argument
625 struct snd_soc_codec *codec = rtd->codec; in snd_soc_new_compress()
626 struct snd_soc_platform *platform = rtd->platform; in snd_soc_new_compress()
627 struct snd_soc_dai *codec_dai = rtd->codec_dai; in snd_soc_new_compress()
628 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in snd_soc_new_compress()
635 if (rtd->num_codecs > 1) { in snd_soc_new_compress()
636 dev_err(rtd->card->dev, "Multicodec not supported for compressed stream\n"); in snd_soc_new_compress()
642 rtd->dai_link->stream_name, codec_dai->name, num); in snd_soc_new_compress()
657 dev_err(rtd->card->dev, "Invalid direction for compress P %d, C %d\n", in snd_soc_new_compress()
673 compr->ops = devm_kzalloc(rtd->card->dev, sizeof(soc_compr_ops), in snd_soc_new_compress()
676 dev_err(rtd->card->dev, "Cannot allocate compressed ops\n"); in snd_soc_new_compress()
681 if (rtd->dai_link->dynamic) { in snd_soc_new_compress()
683 rtd->dai_link->stream_name); in snd_soc_new_compress()
685 ret = snd_pcm_new_internal(rtd->card->snd_card, new_name, num, in snd_soc_new_compress()
686 rtd->dai_link->dpcm_playback, in snd_soc_new_compress()
687 rtd->dai_link->dpcm_capture, &be_pcm); in snd_soc_new_compress()
689 dev_err(rtd->card->dev, "ASoC: can't create compressed for %s\n", in snd_soc_new_compress()
690 rtd->dai_link->name); in snd_soc_new_compress()
694 rtd->pcm = be_pcm; in snd_soc_new_compress()
695 rtd->fe_compr = 1; in snd_soc_new_compress()
696 if (rtd->dai_link->dpcm_playback) in snd_soc_new_compress()
697 be_pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream->private_data = rtd; in snd_soc_new_compress()
698 else if (rtd->dai_link->dpcm_capture) in snd_soc_new_compress()
699 be_pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream->private_data = rtd; in snd_soc_new_compress()
709 ret = snd_compress_new(rtd->card->snd_card, num, direction, compr); in snd_soc_new_compress()
717 INIT_DELAYED_WORK(&rtd->delayed_work, close_delayed_work); in snd_soc_new_compress()
719 rtd->compr = compr; in snd_soc_new_compress()
720 compr->private_data = rtd; in snd_soc_new_compress()