Lines Matching refs:rtd
65 void snd_soc_runtime_activate(struct snd_soc_pcm_runtime *rtd, int stream) in snd_soc_runtime_activate() argument
67 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in snd_soc_runtime_activate()
70 lockdep_assert_held(&rtd->pcm_mutex); in snd_soc_runtime_activate()
74 for (i = 0; i < rtd->num_codecs; i++) in snd_soc_runtime_activate()
75 rtd->codec_dais[i]->playback_active++; in snd_soc_runtime_activate()
78 for (i = 0; i < rtd->num_codecs; i++) in snd_soc_runtime_activate()
79 rtd->codec_dais[i]->capture_active++; in snd_soc_runtime_activate()
84 for (i = 0; i < rtd->num_codecs; i++) { in snd_soc_runtime_activate()
85 rtd->codec_dais[i]->active++; in snd_soc_runtime_activate()
86 rtd->codec_dais[i]->component->active++; in snd_soc_runtime_activate()
100 void snd_soc_runtime_deactivate(struct snd_soc_pcm_runtime *rtd, int stream) in snd_soc_runtime_deactivate() argument
102 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in snd_soc_runtime_deactivate()
105 lockdep_assert_held(&rtd->pcm_mutex); in snd_soc_runtime_deactivate()
109 for (i = 0; i < rtd->num_codecs; i++) in snd_soc_runtime_deactivate()
110 rtd->codec_dais[i]->playback_active--; in snd_soc_runtime_deactivate()
113 for (i = 0; i < rtd->num_codecs; i++) in snd_soc_runtime_deactivate()
114 rtd->codec_dais[i]->capture_active--; in snd_soc_runtime_deactivate()
119 for (i = 0; i < rtd->num_codecs; i++) { in snd_soc_runtime_deactivate()
120 rtd->codec_dais[i]->component->active--; in snd_soc_runtime_deactivate()
121 rtd->codec_dais[i]->active--; in snd_soc_runtime_deactivate()
134 bool snd_soc_runtime_ignore_pmdown_time(struct snd_soc_pcm_runtime *rtd) in snd_soc_runtime_ignore_pmdown_time() argument
139 if (!rtd->pmdown_time || rtd->dai_link->ignore_pmdown_time) in snd_soc_runtime_ignore_pmdown_time()
142 for (i = 0; i < rtd->num_codecs; i++) in snd_soc_runtime_ignore_pmdown_time()
143 ignore &= rtd->codec_dais[i]->component->ignore_pmdown_time; in snd_soc_runtime_ignore_pmdown_time()
145 return rtd->cpu_dai->component->ignore_pmdown_time && ignore; in snd_soc_runtime_ignore_pmdown_time()
195 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_apply_symmetry() local
199 rtd->dai_link->symmetric_rates)) { in soc_pcm_apply_symmetry()
215 rtd->dai_link->symmetric_channels)) { in soc_pcm_apply_symmetry()
231 rtd->dai_link->symmetric_samplebits)) { in soc_pcm_apply_symmetry()
252 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_params_symmetry() local
253 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_pcm_params_symmetry()
262 rtd->dai_link->symmetric_rates; in soc_pcm_params_symmetry()
264 for (i = 0; i < rtd->num_codecs; i++) in soc_pcm_params_symmetry()
265 symmetry |= rtd->codec_dais[i]->driver->symmetric_rates; in soc_pcm_params_symmetry()
268 dev_err(rtd->dev, "ASoC: unmatched rate symmetry: %d - %d\n", in soc_pcm_params_symmetry()
274 rtd->dai_link->symmetric_channels; in soc_pcm_params_symmetry()
276 for (i = 0; i < rtd->num_codecs; i++) in soc_pcm_params_symmetry()
277 symmetry |= rtd->codec_dais[i]->driver->symmetric_channels; in soc_pcm_params_symmetry()
280 dev_err(rtd->dev, "ASoC: unmatched channel symmetry: %d - %d\n", in soc_pcm_params_symmetry()
286 rtd->dai_link->symmetric_samplebits; in soc_pcm_params_symmetry()
288 for (i = 0; i < rtd->num_codecs; i++) in soc_pcm_params_symmetry()
289 symmetry |= rtd->codec_dais[i]->driver->symmetric_samplebits; in soc_pcm_params_symmetry()
292 dev_err(rtd->dev, "ASoC: unmatched sample bits symmetry: %d - %d\n", in soc_pcm_params_symmetry()
302 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_has_symmetry() local
303 struct snd_soc_dai_driver *cpu_driver = rtd->cpu_dai->driver; in soc_pcm_has_symmetry()
304 struct snd_soc_dai_link *link = rtd->dai_link; in soc_pcm_has_symmetry()
311 for (i = 0; i < rtd->num_codecs; i++) in soc_pcm_has_symmetry()
313 rtd->codec_dais[i]->driver->symmetric_rates || in soc_pcm_has_symmetry()
314 rtd->codec_dais[i]->driver->symmetric_channels || in soc_pcm_has_symmetry()
315 rtd->codec_dais[i]->driver->symmetric_samplebits; in soc_pcm_has_symmetry()
322 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_set_msb() local
330 dev_warn(rtd->dev, "ASoC: Failed to set MSB %d: %d\n", in soc_pcm_set_msb()
336 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_apply_msb() local
337 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_pcm_apply_msb()
343 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_apply_msb()
344 codec_dai = rtd->codec_dais[i]; in soc_pcm_apply_msb()
353 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_apply_msb()
354 codec_dai = rtd->codec_dais[i]; in soc_pcm_apply_msb()
372 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_init_runtime_hw() local
373 struct snd_soc_dai_driver *cpu_dai_drv = rtd->cpu_dai->driver; in soc_pcm_init_runtime_hw()
389 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_init_runtime_hw()
400 if (!snd_soc_dai_stream_valid(rtd->codec_dais[i], in soc_pcm_init_runtime_hw()
404 codec_dai_drv = rtd->codec_dais[i]->driver; in soc_pcm_init_runtime_hw()
422 if (rtd->num_codecs > 1) { in soc_pcm_init_runtime_hw()
450 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_open() local
452 struct snd_soc_platform *platform = rtd->platform; in soc_pcm_open()
453 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_pcm_open()
459 for (i = 0; i < rtd->num_codecs; i++) in soc_pcm_open()
460 pinctrl_pm_select_default_state(rtd->codec_dais[i]->dev); in soc_pcm_open()
462 for (i = 0; i < rtd->num_codecs; i++) in soc_pcm_open()
463 pm_runtime_get_sync(rtd->codec_dais[i]->dev); in soc_pcm_open()
466 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_pcm_open()
487 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_open()
488 codec_dai = rtd->codec_dais[i]; in soc_pcm_open()
506 if (rtd->dai_link->ops && rtd->dai_link->ops->startup) { in soc_pcm_open()
507 ret = rtd->dai_link->ops->startup(substream); in soc_pcm_open()
510 rtd->dai_link->name, ret); in soc_pcm_open()
516 if (rtd->dai_link->dynamic || rtd->dai_link->no_pcm) in soc_pcm_open()
522 if (rtd->num_codecs == 1) in soc_pcm_open()
523 codec_dai_name = rtd->codec_dai->name; in soc_pcm_open()
555 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_open()
556 if (rtd->codec_dais[i]->active) { in soc_pcm_open()
558 rtd->codec_dais[i]); in soc_pcm_open()
574 snd_soc_runtime_activate(rtd, substream->stream); in soc_pcm_open()
576 mutex_unlock(&rtd->pcm_mutex); in soc_pcm_open()
580 if (rtd->dai_link->ops && rtd->dai_link->ops->shutdown) in soc_pcm_open()
581 rtd->dai_link->ops->shutdown(substream); in soc_pcm_open()
584 i = rtd->num_codecs; in soc_pcm_open()
588 codec_dai = rtd->codec_dais[i]; in soc_pcm_open()
600 mutex_unlock(&rtd->pcm_mutex); in soc_pcm_open()
603 for (i = 0; i < rtd->num_codecs; i++) in soc_pcm_open()
604 pm_runtime_put(rtd->codec_dais[i]->dev); in soc_pcm_open()
606 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_open()
607 if (!rtd->codec_dais[i]->active) in soc_pcm_open()
608 pinctrl_pm_select_sleep_state(rtd->codec_dais[i]->dev); in soc_pcm_open()
623 struct snd_soc_pcm_runtime *rtd = in close_delayed_work() local
625 struct snd_soc_dai *codec_dai = rtd->codec_dais[0]; in close_delayed_work()
627 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in close_delayed_work()
629 dev_dbg(rtd->dev, "ASoC: pop wq checking: %s status: %s waiting: %s\n", in close_delayed_work()
632 rtd->pop_wait ? "yes" : "no"); in close_delayed_work()
635 if (rtd->pop_wait == 1) { in close_delayed_work()
636 rtd->pop_wait = 0; in close_delayed_work()
637 snd_soc_dapm_stream_event(rtd, SNDRV_PCM_STREAM_PLAYBACK, in close_delayed_work()
641 mutex_unlock(&rtd->pcm_mutex); in close_delayed_work()
651 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_close() local
652 struct snd_soc_platform *platform = rtd->platform; in soc_pcm_close()
653 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_pcm_close()
657 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_pcm_close()
659 snd_soc_runtime_deactivate(rtd, substream->stream); in soc_pcm_close()
665 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_close()
666 codec_dai = rtd->codec_dais[i]; in soc_pcm_close()
676 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_close()
677 codec_dai = rtd->codec_dais[i]; in soc_pcm_close()
682 if (rtd->dai_link->ops && rtd->dai_link->ops->shutdown) in soc_pcm_close()
683 rtd->dai_link->ops->shutdown(substream); in soc_pcm_close()
689 if (snd_soc_runtime_ignore_pmdown_time(rtd)) { in soc_pcm_close()
691 snd_soc_dapm_stream_event(rtd, in soc_pcm_close()
696 rtd->pop_wait = 1; in soc_pcm_close()
698 &rtd->delayed_work, in soc_pcm_close()
699 msecs_to_jiffies(rtd->pmdown_time)); in soc_pcm_close()
703 snd_soc_dapm_stream_event(rtd, SNDRV_PCM_STREAM_CAPTURE, in soc_pcm_close()
707 mutex_unlock(&rtd->pcm_mutex); in soc_pcm_close()
710 for (i = 0; i < rtd->num_codecs; i++) in soc_pcm_close()
711 pm_runtime_put(rtd->codec_dais[i]->dev); in soc_pcm_close()
713 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_close()
714 if (!rtd->codec_dais[i]->active) in soc_pcm_close()
715 pinctrl_pm_select_sleep_state(rtd->codec_dais[i]->dev); in soc_pcm_close()
730 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_prepare() local
731 struct snd_soc_platform *platform = rtd->platform; in soc_pcm_prepare()
732 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_pcm_prepare()
736 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_pcm_prepare()
738 if (rtd->dai_link->ops && rtd->dai_link->ops->prepare) { in soc_pcm_prepare()
739 ret = rtd->dai_link->ops->prepare(substream); in soc_pcm_prepare()
741 dev_err(rtd->card->dev, "ASoC: machine prepare error:" in soc_pcm_prepare()
756 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_prepare()
757 codec_dai = rtd->codec_dais[i]; in soc_pcm_prepare()
781 rtd->pop_wait) { in soc_pcm_prepare()
782 rtd->pop_wait = 0; in soc_pcm_prepare()
783 cancel_delayed_work(&rtd->delayed_work); in soc_pcm_prepare()
786 snd_soc_dapm_stream_event(rtd, substream->stream, in soc_pcm_prepare()
789 for (i = 0; i < rtd->num_codecs; i++) in soc_pcm_prepare()
790 snd_soc_dai_digital_mute(rtd->codec_dais[i], 0, in soc_pcm_prepare()
795 mutex_unlock(&rtd->pcm_mutex); in soc_pcm_prepare()
836 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_hw_params() local
837 struct snd_soc_platform *platform = rtd->platform; in soc_pcm_hw_params()
838 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_pcm_hw_params()
841 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_pcm_hw_params()
847 if (rtd->dai_link->ops && rtd->dai_link->ops->hw_params) { in soc_pcm_hw_params()
848 ret = rtd->dai_link->ops->hw_params(substream, params); in soc_pcm_hw_params()
850 dev_err(rtd->card->dev, "ASoC: machine hw_params" in soc_pcm_hw_params()
856 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_hw_params()
857 struct snd_soc_dai *codec_dai = rtd->codec_dais[i]; in soc_pcm_hw_params()
918 mutex_unlock(&rtd->pcm_mutex); in soc_pcm_hw_params()
926 i = rtd->num_codecs; in soc_pcm_hw_params()
930 struct snd_soc_dai *codec_dai = rtd->codec_dais[i]; in soc_pcm_hw_params()
936 if (rtd->dai_link->ops && rtd->dai_link->ops->hw_free) in soc_pcm_hw_params()
937 rtd->dai_link->ops->hw_free(substream); in soc_pcm_hw_params()
939 mutex_unlock(&rtd->pcm_mutex); in soc_pcm_hw_params()
948 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_hw_free() local
949 struct snd_soc_platform *platform = rtd->platform; in soc_pcm_hw_free()
950 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_pcm_hw_free()
955 mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); in soc_pcm_hw_free()
964 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_hw_free()
965 codec_dai = rtd->codec_dais[i]; in soc_pcm_hw_free()
974 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_hw_free()
975 if ((playback && rtd->codec_dais[i]->playback_active == 1) || in soc_pcm_hw_free()
976 (!playback && rtd->codec_dais[i]->capture_active == 1)) in soc_pcm_hw_free()
977 snd_soc_dai_digital_mute(rtd->codec_dais[i], 1, in soc_pcm_hw_free()
982 if (rtd->dai_link->ops && rtd->dai_link->ops->hw_free) in soc_pcm_hw_free()
983 rtd->dai_link->ops->hw_free(substream); in soc_pcm_hw_free()
990 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_hw_free()
991 codec_dai = rtd->codec_dais[i]; in soc_pcm_hw_free()
999 mutex_unlock(&rtd->pcm_mutex); in soc_pcm_hw_free()
1005 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_trigger() local
1006 struct snd_soc_platform *platform = rtd->platform; in soc_pcm_trigger()
1007 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_pcm_trigger()
1011 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_trigger()
1012 codec_dai = rtd->codec_dais[i]; in soc_pcm_trigger()
1033 if (rtd->dai_link->ops && rtd->dai_link->ops->trigger) { in soc_pcm_trigger()
1034 ret = rtd->dai_link->ops->trigger(substream, cmd); in soc_pcm_trigger()
1045 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_bespoke_trigger() local
1046 struct snd_soc_platform *platform = rtd->platform; in soc_pcm_bespoke_trigger()
1047 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_pcm_bespoke_trigger()
1051 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_bespoke_trigger()
1052 codec_dai = rtd->codec_dais[i]; in soc_pcm_bespoke_trigger()
1082 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_pointer() local
1083 struct snd_soc_platform *platform = rtd->platform; in soc_pcm_pointer()
1084 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_pcm_pointer()
1098 for (i = 0; i < rtd->num_codecs; i++) { in soc_pcm_pointer()
1099 codec_dai = rtd->codec_dais[i]; in soc_pcm_pointer()
1112 delay += platform->driver->delay(substream, rtd->codec_dais[0]); in soc_pcm_pointer()
1220 be = &card->rtd[i]; in dpcm_get_be()
1237 be = &card->rtd[i]; in dpcm_get_be()
1585 struct snd_soc_pcm_runtime *rtd = substream->private_data; in dpcm_set_fe_runtime() local
1586 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in dpcm_set_fe_runtime()
2182 struct snd_soc_pcm_runtime *rtd = substream->private_data; in soc_pcm_ioctl() local
2183 struct snd_soc_platform *platform = rtd->platform; in soc_pcm_ioctl()
2352 struct snd_soc_pcm_runtime *fe = &card->rtd[i]; in soc_dpcm_runtime_update()
2532 int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num) in soc_new_pcm() argument
2534 struct snd_soc_platform *platform = rtd->platform; in soc_new_pcm()
2536 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_new_pcm()
2542 if (rtd->dai_link->dynamic || rtd->dai_link->no_pcm) { in soc_new_pcm()
2543 playback = rtd->dai_link->dpcm_playback; in soc_new_pcm()
2544 capture = rtd->dai_link->dpcm_capture; in soc_new_pcm()
2546 for (i = 0; i < rtd->num_codecs; i++) { in soc_new_pcm()
2547 codec_dai = rtd->codec_dais[i]; in soc_new_pcm()
2558 if (rtd->dai_link->playback_only) { in soc_new_pcm()
2563 if (rtd->dai_link->capture_only) { in soc_new_pcm()
2569 if (rtd->dai_link->no_pcm) { in soc_new_pcm()
2571 rtd->dai_link->stream_name); in soc_new_pcm()
2573 ret = snd_pcm_new_internal(rtd->card->snd_card, new_name, num, in soc_new_pcm()
2576 if (rtd->dai_link->dynamic) in soc_new_pcm()
2578 rtd->dai_link->stream_name); in soc_new_pcm()
2581 rtd->dai_link->stream_name, in soc_new_pcm()
2582 (rtd->num_codecs > 1) ? in soc_new_pcm()
2583 "multicodec" : rtd->codec_dai->name, num); in soc_new_pcm()
2585 ret = snd_pcm_new(rtd->card->snd_card, new_name, num, playback, in soc_new_pcm()
2589 dev_err(rtd->card->dev, "ASoC: can't create pcm for %s\n", in soc_new_pcm()
2590 rtd->dai_link->name); in soc_new_pcm()
2593 dev_dbg(rtd->card->dev, "ASoC: registered pcm #%d %s\n",num, new_name); in soc_new_pcm()
2596 INIT_DELAYED_WORK(&rtd->delayed_work, close_delayed_work); in soc_new_pcm()
2598 pcm->nonatomic = rtd->dai_link->nonatomic; in soc_new_pcm()
2599 rtd->pcm = pcm; in soc_new_pcm()
2600 pcm->private_data = rtd; in soc_new_pcm()
2602 if (rtd->dai_link->no_pcm) { in soc_new_pcm()
2604 pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream->private_data = rtd; in soc_new_pcm()
2606 pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream->private_data = rtd; in soc_new_pcm()
2611 if (rtd->dai_link->dynamic) { in soc_new_pcm()
2612 rtd->ops.open = dpcm_fe_dai_open; in soc_new_pcm()
2613 rtd->ops.hw_params = dpcm_fe_dai_hw_params; in soc_new_pcm()
2614 rtd->ops.prepare = dpcm_fe_dai_prepare; in soc_new_pcm()
2615 rtd->ops.trigger = dpcm_fe_dai_trigger; in soc_new_pcm()
2616 rtd->ops.hw_free = dpcm_fe_dai_hw_free; in soc_new_pcm()
2617 rtd->ops.close = dpcm_fe_dai_close; in soc_new_pcm()
2618 rtd->ops.pointer = soc_pcm_pointer; in soc_new_pcm()
2619 rtd->ops.ioctl = soc_pcm_ioctl; in soc_new_pcm()
2621 rtd->ops.open = soc_pcm_open; in soc_new_pcm()
2622 rtd->ops.hw_params = soc_pcm_hw_params; in soc_new_pcm()
2623 rtd->ops.prepare = soc_pcm_prepare; in soc_new_pcm()
2624 rtd->ops.trigger = soc_pcm_trigger; in soc_new_pcm()
2625 rtd->ops.hw_free = soc_pcm_hw_free; in soc_new_pcm()
2626 rtd->ops.close = soc_pcm_close; in soc_new_pcm()
2627 rtd->ops.pointer = soc_pcm_pointer; in soc_new_pcm()
2628 rtd->ops.ioctl = soc_pcm_ioctl; in soc_new_pcm()
2632 rtd->ops.ack = platform->driver->ops->ack; in soc_new_pcm()
2633 rtd->ops.copy = platform->driver->ops->copy; in soc_new_pcm()
2634 rtd->ops.silence = platform->driver->ops->silence; in soc_new_pcm()
2635 rtd->ops.page = platform->driver->ops->page; in soc_new_pcm()
2636 rtd->ops.mmap = platform->driver->ops->mmap; in soc_new_pcm()
2640 snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &rtd->ops); in soc_new_pcm()
2643 snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &rtd->ops); in soc_new_pcm()
2646 ret = platform->driver->pcm_new(rtd); in soc_new_pcm()
2657 dev_info(rtd->card->dev, "%s <-> %s mapping ok\n", in soc_new_pcm()
2658 (rtd->num_codecs > 1) ? "multicodec" : rtd->codec_dai->name, in soc_new_pcm()
2890 void soc_dpcm_debugfs_add(struct snd_soc_pcm_runtime *rtd) in soc_dpcm_debugfs_add() argument
2892 if (!rtd->dai_link) in soc_dpcm_debugfs_add()
2895 if (!rtd->card->debugfs_card_root) in soc_dpcm_debugfs_add()
2898 rtd->debugfs_dpcm_root = debugfs_create_dir(rtd->dai_link->name, in soc_dpcm_debugfs_add()
2899 rtd->card->debugfs_card_root); in soc_dpcm_debugfs_add()
2900 if (!rtd->debugfs_dpcm_root) { in soc_dpcm_debugfs_add()
2901 dev_dbg(rtd->dev, in soc_dpcm_debugfs_add()
2903 rtd->dai_link->name); in soc_dpcm_debugfs_add()
2907 rtd->debugfs_dpcm_state = debugfs_create_file("state", 0444, in soc_dpcm_debugfs_add()
2908 rtd->debugfs_dpcm_root, in soc_dpcm_debugfs_add()
2909 rtd, &dpcm_state_fops); in soc_dpcm_debugfs_add()