Lines Matching refs:rtd
155 struct snd_soc_pcm_runtime *rtd = dev_get_drvdata(dev); in codec_reg_show() local
157 return soc_codec_reg_show(rtd->codec, buf, PAGE_SIZE, 0); in codec_reg_show()
165 struct snd_soc_pcm_runtime *rtd = dev_get_drvdata(dev); in pmdown_time_show() local
167 return sprintf(buf, "%ld\n", rtd->pmdown_time); in pmdown_time_show()
174 struct snd_soc_pcm_runtime *rtd = dev_get_drvdata(dev); in pmdown_time_set() local
177 ret = kstrtol(buf, 10, &rtd->pmdown_time); in pmdown_time_set()
196 struct snd_soc_pcm_runtime *rtd = dev_get_drvdata(dev); in soc_dev_attr_is_visible() local
200 return rtd->codec ? attr->mode : 0; /* enabled only with codec */ in soc_dev_attr_is_visible()
543 if (card->rtd[i].dai_link->no_pcm && in snd_soc_get_dai_substream()
544 !strcmp(card->rtd[i].dai_link->name, dai_link)) in snd_soc_get_dai_substream()
545 return card->rtd[i].pcm->streams[stream].substream; in snd_soc_get_dai_substream()
558 if (!strcmp(card->rtd[i].dai_link->name, dai_link)) in snd_soc_get_pcm_runtime()
559 return &card->rtd[i]; in snd_soc_get_pcm_runtime()
600 if (card->rtd[i].dai_link->ignore_suspend) in snd_soc_suspend()
603 for (j = 0; j < card->rtd[i].num_codecs; j++) { in snd_soc_suspend()
604 struct snd_soc_dai *dai = card->rtd[i].codec_dais[j]; in snd_soc_suspend()
614 if (card->rtd[i].dai_link->ignore_suspend) in snd_soc_suspend()
617 snd_pcm_suspend_all(card->rtd[i].pcm); in snd_soc_suspend()
624 struct snd_soc_dai *cpu_dai = card->rtd[i].cpu_dai; in snd_soc_suspend()
626 if (card->rtd[i].dai_link->ignore_suspend) in snd_soc_suspend()
635 flush_delayed_work(&card->rtd[i].delayed_work); in snd_soc_suspend()
639 if (card->rtd[i].dai_link->ignore_suspend) in snd_soc_suspend()
642 snd_soc_dapm_stream_event(&card->rtd[i], in snd_soc_suspend()
646 snd_soc_dapm_stream_event(&card->rtd[i], in snd_soc_suspend()
694 struct snd_soc_dai *cpu_dai = card->rtd[i].cpu_dai; in snd_soc_suspend()
696 if (card->rtd[i].dai_link->ignore_suspend) in snd_soc_suspend()
737 struct snd_soc_dai *cpu_dai = card->rtd[i].cpu_dai; in soc_resume_deferred()
739 if (card->rtd[i].dai_link->ignore_suspend) in soc_resume_deferred()
756 if (card->rtd[i].dai_link->ignore_suspend) in soc_resume_deferred()
759 snd_soc_dapm_stream_event(&card->rtd[i], in soc_resume_deferred()
763 snd_soc_dapm_stream_event(&card->rtd[i], in soc_resume_deferred()
771 if (card->rtd[i].dai_link->ignore_suspend) in soc_resume_deferred()
774 for (j = 0; j < card->rtd[i].num_codecs; j++) { in soc_resume_deferred()
775 struct snd_soc_dai *dai = card->rtd[i].codec_dais[j]; in soc_resume_deferred()
784 struct snd_soc_dai *cpu_dai = card->rtd[i].cpu_dai; in soc_resume_deferred()
786 if (card->rtd[i].dai_link->ignore_suspend) in soc_resume_deferred()
819 struct snd_soc_pcm_runtime *rtd = &card->rtd[i]; in snd_soc_resume() local
820 struct snd_soc_dai **codec_dais = rtd->codec_dais; in snd_soc_resume()
821 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in snd_soc_resume()
827 for (j = 0; j < rtd->num_codecs; j++) { in snd_soc_resume()
841 struct snd_soc_dai *cpu_dai = card->rtd[i].cpu_dai; in snd_soc_resume()
916 struct snd_soc_pcm_runtime *rtd = &card->rtd[num]; in soc_bind_dai_link() local
919 struct snd_soc_dai **codec_dais = rtd->codec_dais; in soc_bind_dai_link()
929 rtd->cpu_dai = snd_soc_find_dai(&cpu_dai_component); in soc_bind_dai_link()
930 if (!rtd->cpu_dai) { in soc_bind_dai_link()
936 rtd->num_codecs = dai_link->num_codecs; in soc_bind_dai_link()
939 for (i = 0; i < rtd->num_codecs; i++) { in soc_bind_dai_link()
949 rtd->codec_dai = codec_dais[0]; in soc_bind_dai_link()
950 rtd->codec = rtd->codec_dai->codec; in soc_bind_dai_link()
968 rtd->platform = platform; in soc_bind_dai_link()
970 if (!rtd->platform) { in soc_bind_dai_link()
1019 struct snd_soc_pcm_runtime *rtd = &card->rtd[num]; in soc_remove_link_dais() local
1023 if (rtd->dev_registered) { in soc_remove_link_dais()
1024 device_unregister(rtd->dev); in soc_remove_link_dais()
1025 rtd->dev_registered = 0; in soc_remove_link_dais()
1029 for (i = 0; i < rtd->num_codecs; i++) in soc_remove_link_dais()
1030 soc_remove_dai(rtd->codec_dais[i], order); in soc_remove_link_dais()
1032 soc_remove_dai(rtd->cpu_dai, order); in soc_remove_link_dais()
1038 struct snd_soc_pcm_runtime *rtd = &card->rtd[num]; in soc_remove_link_components() local
1039 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_remove_link_components()
1040 struct snd_soc_platform *platform = rtd->platform; in soc_remove_link_components()
1049 for (i = 0; i < rtd->num_codecs; i++) { in soc_remove_link_components()
1050 component = rtd->codec_dais[i]->component; in soc_remove_link_components()
1191 static int soc_post_component_init(struct snd_soc_pcm_runtime *rtd, in soc_post_component_init() argument
1197 rtd->dev = kzalloc(sizeof(struct device), GFP_KERNEL); in soc_post_component_init()
1198 if (!rtd->dev) in soc_post_component_init()
1200 device_initialize(rtd->dev); in soc_post_component_init()
1201 rtd->dev->parent = rtd->card->dev; in soc_post_component_init()
1202 rtd->dev->release = rtd_release; in soc_post_component_init()
1203 rtd->dev->groups = soc_dev_attr_groups; in soc_post_component_init()
1204 dev_set_name(rtd->dev, "%s", name); in soc_post_component_init()
1205 dev_set_drvdata(rtd->dev, rtd); in soc_post_component_init()
1206 mutex_init(&rtd->pcm_mutex); in soc_post_component_init()
1207 INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_PLAYBACK].be_clients); in soc_post_component_init()
1208 INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_CAPTURE].be_clients); in soc_post_component_init()
1209 INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_PLAYBACK].fe_clients); in soc_post_component_init()
1210 INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_CAPTURE].fe_clients); in soc_post_component_init()
1211 ret = device_add(rtd->dev); in soc_post_component_init()
1214 put_device(rtd->dev); in soc_post_component_init()
1215 dev_err(rtd->card->dev, in soc_post_component_init()
1219 rtd->dev_registered = 1; in soc_post_component_init()
1226 struct snd_soc_pcm_runtime *rtd = &card->rtd[num]; in soc_probe_link_components() local
1227 struct snd_soc_platform *platform = rtd->platform; in soc_probe_link_components()
1232 component = rtd->cpu_dai->component; in soc_probe_link_components()
1240 for (i = 0; i < rtd->num_codecs; i++) { in soc_probe_link_components()
1241 component = rtd->codec_dais[i]->component; in soc_probe_link_components()
1282 struct snd_soc_pcm_runtime *rtd) in soc_link_dai_widgets() argument
1284 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_link_dai_widgets()
1285 struct snd_soc_dai *codec_dai = rtd->codec_dai; in soc_link_dai_widgets()
1289 if (rtd->num_codecs > 1) in soc_link_dai_widgets()
1325 struct snd_soc_pcm_runtime *rtd = &card->rtd[num]; in soc_probe_link_dais() local
1326 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in soc_probe_link_dais()
1333 rtd->pmdown_time = pmdown_time; in soc_probe_link_dais()
1340 for (i = 0; i < rtd->num_codecs; i++) { in soc_probe_link_dais()
1341 ret = soc_probe_dai(rtd->codec_dais[i], order); in soc_probe_link_dais()
1352 ret = dai_link->init(rtd); in soc_probe_link_dais()
1361 snd_soc_runtime_set_dai_fmt(rtd, dai_link->dai_fmt); in soc_probe_link_dais()
1363 ret = soc_post_component_init(rtd, dai_link->name); in soc_probe_link_dais()
1370 soc_dpcm_debugfs_add(rtd); in soc_probe_link_dais()
1375 ret = cpu_dai->driver->compress_new(rtd, num); in soc_probe_link_dais()
1385 ret = soc_new_pcm(rtd, num); in soc_probe_link_dais()
1392 INIT_DELAYED_WORK(&rtd->delayed_work, in soc_probe_link_dais()
1396 ret = soc_link_dai_widgets(card, dai_link, rtd); in soc_probe_link_dais()
1407 struct snd_soc_pcm_runtime *rtd = &card->rtd_aux[num]; in soc_bind_aux_dev() local
1411 rtd->component = soc_find_component(aux_dev->codec_of_node, name); in soc_bind_aux_dev()
1412 if (!rtd->component) { in soc_bind_aux_dev()
1425 rtd->codec = rtd->component->codec; in soc_bind_aux_dev()
1432 struct snd_soc_pcm_runtime *rtd = &card->rtd_aux[num]; in soc_probe_aux_dev() local
1436 ret = soc_probe_component(card, rtd->component); in soc_probe_aux_dev()
1442 ret = aux_dev->init(rtd->component); in soc_probe_aux_dev()
1450 return soc_post_component_init(rtd, aux_dev->name); in soc_probe_aux_dev()
1455 struct snd_soc_pcm_runtime *rtd = &card->rtd_aux[num]; in soc_remove_aux_dev() local
1456 struct snd_soc_component *component = rtd->component; in soc_remove_aux_dev()
1459 if (rtd->dev_registered) { in soc_remove_aux_dev()
1460 device_unregister(rtd->dev); in soc_remove_aux_dev()
1461 rtd->dev_registered = 0; in soc_remove_aux_dev()
1499 int snd_soc_runtime_set_dai_fmt(struct snd_soc_pcm_runtime *rtd, in snd_soc_runtime_set_dai_fmt() argument
1502 struct snd_soc_dai **codec_dais = rtd->codec_dais; in snd_soc_runtime_set_dai_fmt()
1503 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in snd_soc_runtime_set_dai_fmt()
1507 for (i = 0; i < rtd->num_codecs; i++) { in snd_soc_runtime_set_dai_fmt()
1770 struct snd_soc_pcm_runtime *rtd = &card->rtd[i]; in soc_cleanup_card_resources() local
1771 flush_delayed_work(&rtd->delayed_work); in soc_cleanup_card_resources()
1814 struct snd_soc_pcm_runtime *rtd = &card->rtd[i]; in snd_soc_poweroff() local
1815 flush_delayed_work(&rtd->delayed_work); in snd_soc_poweroff()
1822 struct snd_soc_pcm_runtime *rtd = &card->rtd[i]; in snd_soc_poweroff() local
1823 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in snd_soc_poweroff()
1827 for (j = 0; j < rtd->num_codecs; j++) { in snd_soc_poweroff()
1828 struct snd_soc_dai *codec_dai = rtd->codec_dais[j]; in snd_soc_poweroff()
2411 card->rtd = devm_kzalloc(card->dev, in snd_soc_register_card()
2415 if (card->rtd == NULL) in snd_soc_register_card()
2418 card->rtd_aux = &card->rtd[card->num_links]; in snd_soc_register_card()
2421 card->rtd[i].card = card; in snd_soc_register_card()
2422 card->rtd[i].dai_link = &card->dai_link[i]; in snd_soc_register_card()
2423 card->rtd[i].codec_dais = devm_kzalloc(card->dev, in snd_soc_register_card()
2425 (card->rtd[i].dai_link->num_codecs), in snd_soc_register_card()
2427 if (card->rtd[i].codec_dais == NULL) in snd_soc_register_card()
2446 struct snd_soc_pcm_runtime *rtd = &card->rtd[i]; in snd_soc_register_card() local
2447 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; in snd_soc_register_card()
2450 for (j = 0; j < rtd->num_codecs; j++) { in snd_soc_register_card()
2451 struct snd_soc_dai *codec_dai = rtd->codec_dais[j]; in snd_soc_register_card()