Lines Matching refs:rtd
163 struct snd_soc_pcm_runtime *rtd = dev_get_drvdata(dev); in codec_reg_show() local
165 return soc_codec_reg_show(rtd->codec, buf, PAGE_SIZE, 0); in codec_reg_show()
173 struct snd_soc_pcm_runtime *rtd = dev_get_drvdata(dev); in pmdown_time_show() local
175 return sprintf(buf, "%ld\n", rtd->pmdown_time); in pmdown_time_show()
182 struct snd_soc_pcm_runtime *rtd = dev_get_drvdata(dev); in pmdown_time_set() local
185 ret = kstrtol(buf, 10, &rtd->pmdown_time); in pmdown_time_set()
204 struct snd_soc_pcm_runtime *rtd = dev_get_drvdata(dev); in soc_dev_attr_is_visible() local
208 return rtd->codec ? attr->mode : 0; /* enabled only with codec */ in soc_dev_attr_is_visible()
551 if (card->rtd[i].dai_link->no_pcm && in snd_soc_get_dai_substream()
552 !strcmp(card->rtd[i].dai_link->name, dai_link)) in snd_soc_get_dai_substream()
553 return card->rtd[i].pcm->streams[stream].substream; in snd_soc_get_dai_substream()
566 if (!strcmp(card->rtd[i].dai_link->name, dai_link)) in snd_soc_get_pcm_runtime()
567 return &card->rtd[i]; in snd_soc_get_pcm_runtime()
608 if (card->rtd[i].dai_link->ignore_suspend) in snd_soc_suspend()
611 for (j = 0; j < card->rtd[i].num_codecs; j++) { in snd_soc_suspend()
612 struct snd_soc_dai *dai = card->rtd[i].codec_dais[j]; in snd_soc_suspend()
622 if (card->rtd[i].dai_link->ignore_suspend) in snd_soc_suspend()
625 snd_pcm_suspend_all(card->rtd[i].pcm); in snd_soc_suspend()
632 struct snd_soc_dai *cpu_dai = card->rtd[i].cpu_dai; in snd_soc_suspend()
634 if (card->rtd[i].dai_link->ignore_suspend) in snd_soc_suspend()
643 flush_delayed_work(&card->rtd[i].delayed_work); in snd_soc_suspend()
647 if (card->rtd[i].dai_link->ignore_suspend) in snd_soc_suspend()
650 snd_soc_dapm_stream_event(&card->rtd[i], in snd_soc_suspend()
654 snd_soc_dapm_stream_event(&card->rtd[i], in snd_soc_suspend()
700 struct snd_soc_dai *cpu_dai = card->rtd[i].cpu_dai; in snd_soc_suspend()
702 if (card->rtd[i].dai_link->ignore_suspend) in snd_soc_suspend()
743 struct snd_soc_dai *cpu_dai = card->rtd[i].cpu_dai; in soc_resume_deferred()
745 if (card->rtd[i].dai_link->ignore_suspend) in soc_resume_deferred()
775 if (card->rtd[i].dai_link->ignore_suspend) in soc_resume_deferred()
778 snd_soc_dapm_stream_event(&card->rtd[i], in soc_resume_deferred()
782 snd_soc_dapm_stream_event(&card->rtd[i], in soc_resume_deferred()
790 if (card->rtd[i].dai_link->ignore_suspend) in soc_resume_deferred()
793 for (j = 0; j < card->rtd[i].num_codecs; j++) { in soc_resume_deferred()
794 struct snd_soc_dai *dai = card->rtd[i].codec_dais[j]; in soc_resume_deferred()
803 struct snd_soc_dai *cpu_dai = card->rtd[i].cpu_dai; in soc_resume_deferred()
805 if (card->rtd[i].dai_link->ignore_suspend) in soc_resume_deferred()
838 struct snd_soc_pcm_runtime *rtd = &card->rtd[i]; in snd_soc_resume() local
839 struct snd_soc_dai **codec_dais = rtd->codec_dais; in snd_soc_resume()
840 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in snd_soc_resume()
846 for (j = 0; j < rtd->num_codecs; j++) { in snd_soc_resume()
860 struct snd_soc_dai *cpu_dai = card->rtd[i].cpu_dai; in snd_soc_resume()
930 struct snd_soc_pcm_runtime *rtd = &card->rtd[num]; in soc_bind_dai_link() local
933 struct snd_soc_dai **codec_dais = rtd->codec_dais; in soc_bind_dai_link()
943 rtd->cpu_dai = snd_soc_find_dai(&cpu_dai_component); in soc_bind_dai_link()
944 if (!rtd->cpu_dai) { in soc_bind_dai_link()
950 rtd->num_codecs = dai_link->num_codecs; in soc_bind_dai_link()
953 for (i = 0; i < rtd->num_codecs; i++) { in soc_bind_dai_link()
963 rtd->codec_dai = codec_dais[0]; in soc_bind_dai_link()
964 rtd->codec = rtd->codec_dai->codec; in soc_bind_dai_link()
982 rtd->platform = platform; in soc_bind_dai_link()
984 if (!rtd->platform) { in soc_bind_dai_link()
1033 struct snd_soc_pcm_runtime *rtd = &card->rtd[num]; in soc_remove_link_dais() local
1037 if (rtd->dev_registered) { in soc_remove_link_dais()
1038 device_unregister(rtd->dev); in soc_remove_link_dais()
1039 rtd->dev_registered = 0; in soc_remove_link_dais()
1043 for (i = 0; i < rtd->num_codecs; i++) in soc_remove_link_dais()
1044 soc_remove_dai(rtd->codec_dais[i], order); in soc_remove_link_dais()
1046 soc_remove_dai(rtd->cpu_dai, order); in soc_remove_link_dais()
1052 struct snd_soc_pcm_runtime *rtd = &card->rtd[num]; in soc_remove_link_components() local
1053 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_remove_link_components()
1054 struct snd_soc_platform *platform = rtd->platform; in soc_remove_link_components()
1063 for (i = 0; i < rtd->num_codecs; i++) { in soc_remove_link_components()
1064 component = rtd->codec_dais[i]->component; in soc_remove_link_components()
1195 static int soc_post_component_init(struct snd_soc_pcm_runtime *rtd, in soc_post_component_init() argument
1201 rtd->dev = kzalloc(sizeof(struct device), GFP_KERNEL); in soc_post_component_init()
1202 if (!rtd->dev) in soc_post_component_init()
1204 device_initialize(rtd->dev); in soc_post_component_init()
1205 rtd->dev->parent = rtd->card->dev; in soc_post_component_init()
1206 rtd->dev->release = rtd_release; in soc_post_component_init()
1207 rtd->dev->groups = soc_dev_attr_groups; in soc_post_component_init()
1208 dev_set_name(rtd->dev, "%s", name); in soc_post_component_init()
1209 dev_set_drvdata(rtd->dev, rtd); in soc_post_component_init()
1210 mutex_init(&rtd->pcm_mutex); in soc_post_component_init()
1211 INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_PLAYBACK].be_clients); in soc_post_component_init()
1212 INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_CAPTURE].be_clients); in soc_post_component_init()
1213 INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_PLAYBACK].fe_clients); in soc_post_component_init()
1214 INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_CAPTURE].fe_clients); in soc_post_component_init()
1215 ret = device_add(rtd->dev); in soc_post_component_init()
1218 put_device(rtd->dev); in soc_post_component_init()
1219 dev_err(rtd->card->dev, in soc_post_component_init()
1223 rtd->dev_registered = 1; in soc_post_component_init()
1230 struct snd_soc_pcm_runtime *rtd = &card->rtd[num]; in soc_probe_link_components() local
1231 struct snd_soc_platform *platform = rtd->platform; in soc_probe_link_components()
1236 component = rtd->cpu_dai->component; in soc_probe_link_components()
1244 for (i = 0; i < rtd->num_codecs; i++) { in soc_probe_link_components()
1245 component = rtd->codec_dais[i]->component; in soc_probe_link_components()
1286 struct snd_soc_pcm_runtime *rtd) in soc_link_dai_widgets() argument
1288 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_link_dai_widgets()
1289 struct snd_soc_dai *codec_dai = rtd->codec_dai; in soc_link_dai_widgets()
1293 if (rtd->num_codecs > 1) in soc_link_dai_widgets()
1329 struct snd_soc_pcm_runtime *rtd = &card->rtd[num]; in soc_probe_link_dais() local
1330 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_probe_link_dais()
1337 rtd->pmdown_time = pmdown_time; in soc_probe_link_dais()
1344 for (i = 0; i < rtd->num_codecs; i++) { in soc_probe_link_dais()
1345 ret = soc_probe_dai(rtd->codec_dais[i], order); in soc_probe_link_dais()
1356 ret = dai_link->init(rtd); in soc_probe_link_dais()
1365 snd_soc_runtime_set_dai_fmt(rtd, dai_link->dai_fmt); in soc_probe_link_dais()
1367 ret = soc_post_component_init(rtd, dai_link->name); in soc_probe_link_dais()
1374 soc_dpcm_debugfs_add(rtd); in soc_probe_link_dais()
1379 ret = soc_new_compress(rtd, num); in soc_probe_link_dais()
1389 ret = soc_new_pcm(rtd, num); in soc_probe_link_dais()
1396 INIT_DELAYED_WORK(&rtd->delayed_work, in soc_probe_link_dais()
1400 ret = soc_link_dai_widgets(card, dai_link, rtd); in soc_probe_link_dais()
1411 struct snd_soc_pcm_runtime *rtd = &card->rtd_aux[num]; in soc_bind_aux_dev() local
1415 rtd->component = soc_find_component(aux_dev->codec_of_node, name); in soc_bind_aux_dev()
1416 if (!rtd->component) { in soc_bind_aux_dev()
1429 rtd->codec = rtd->component->codec; in soc_bind_aux_dev()
1436 struct snd_soc_pcm_runtime *rtd = &card->rtd_aux[num]; in soc_probe_aux_dev() local
1440 ret = soc_probe_component(card, rtd->component); in soc_probe_aux_dev()
1446 ret = aux_dev->init(rtd->component); in soc_probe_aux_dev()
1454 return soc_post_component_init(rtd, aux_dev->name); in soc_probe_aux_dev()
1459 struct snd_soc_pcm_runtime *rtd = &card->rtd_aux[num]; in soc_remove_aux_dev() local
1460 struct snd_soc_component *component = rtd->component; in soc_remove_aux_dev()
1463 if (rtd->dev_registered) { in soc_remove_aux_dev()
1464 device_unregister(rtd->dev); in soc_remove_aux_dev()
1465 rtd->dev_registered = 0; in soc_remove_aux_dev()
1503 int snd_soc_runtime_set_dai_fmt(struct snd_soc_pcm_runtime *rtd, in snd_soc_runtime_set_dai_fmt() argument
1506 struct snd_soc_dai **codec_dais = rtd->codec_dais; in snd_soc_runtime_set_dai_fmt()
1507 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in snd_soc_runtime_set_dai_fmt()
1511 for (i = 0; i < rtd->num_codecs; i++) { in snd_soc_runtime_set_dai_fmt()
1773 struct snd_soc_pcm_runtime *rtd = &card->rtd[i]; in soc_cleanup_card_resources() local
1774 flush_delayed_work(&rtd->delayed_work); in soc_cleanup_card_resources()
1817 struct snd_soc_pcm_runtime *rtd = &card->rtd[i]; in snd_soc_poweroff() local
1818 flush_delayed_work(&rtd->delayed_work); in snd_soc_poweroff()
1825 struct snd_soc_pcm_runtime *rtd = &card->rtd[i]; in snd_soc_poweroff() local
1826 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in snd_soc_poweroff()
1830 for (j = 0; j < rtd->num_codecs; j++) { in snd_soc_poweroff()
1831 struct snd_soc_dai *codec_dai = rtd->codec_dais[j]; in snd_soc_poweroff()
2414 card->rtd = devm_kzalloc(card->dev, in snd_soc_register_card()
2418 if (card->rtd == NULL) in snd_soc_register_card()
2421 card->rtd_aux = &card->rtd[card->num_links]; in snd_soc_register_card()
2424 card->rtd[i].card = card; in snd_soc_register_card()
2425 card->rtd[i].dai_link = &card->dai_link[i]; in snd_soc_register_card()
2426 card->rtd[i].codec_dais = devm_kzalloc(card->dev, in snd_soc_register_card()
2428 (card->rtd[i].dai_link->num_codecs), in snd_soc_register_card()
2430 if (card->rtd[i].codec_dais == NULL) in snd_soc_register_card()
2448 struct snd_soc_pcm_runtime *rtd = &card->rtd[i]; in snd_soc_register_card() local
2449 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in snd_soc_register_card()
2452 for (j = 0; j < rtd->num_codecs; j++) { in snd_soc_register_card()
2453 struct snd_soc_dai *codec_dai = rtd->codec_dais[j]; in snd_soc_register_card()