Lines Matching refs:rtd

73 	struct snd_soc_pcm_runtime *rtd = dev_get_drvdata(dev);
75 return sysfs_emit(buf, "%ld\n", rtd->pmdown_time);
82 struct snd_soc_pcm_runtime *rtd = dev_get_drvdata(dev);
85 ret = kstrtol(buf, 10, &rtd->pmdown_time);
103 struct snd_soc_pcm_runtime *rtd = dev_get_drvdata(dev);
105 if (!rtd)
110 return rtd->dai_link->num_codecs ? attr->mode : 0; /* enabled only with codec */
316 static int snd_soc_rtd_add_component(struct snd_soc_pcm_runtime *rtd,
322 for_each_rtd_components(rtd, i, comp) {
329 rtd->components[rtd->num_components] = component;
330 rtd->num_components++;
335 struct snd_soc_component *snd_soc_rtdcom_lookup(struct snd_soc_pcm_runtime *rtd,
347 * snd_soc_rtdcom_lookup() will find component from rtd by using
350 * to 1 rtd, this function will return 1st found component.
352 for_each_rtd_components(rtd, i, component) {
405 struct snd_soc_pcm_runtime *rtd;
407 for_each_card_rtds(card, rtd) {
408 if (rtd->dai_link == dai_link)
409 return rtd;
411 dev_dbg(card->dev, "ASoC: failed to find rtd %s\n", dai_link->name);
421 void snd_soc_close_delayed_work(struct snd_soc_pcm_runtime *rtd)
423 struct snd_soc_dai *codec_dai = snd_soc_rtd_to_codec(rtd, 0);
426 snd_soc_dpcm_mutex_lock(rtd);
428 dev_dbg(rtd->dev,
433 rtd->pop_wait ? "yes" : "no");
436 if (rtd->pop_wait == 1) {
437 rtd->pop_wait = 0;
438 snd_soc_dapm_stream_event(rtd, playback,
442 snd_soc_dpcm_mutex_unlock(rtd);
448 /* "dev" means "rtd->dev" */
452 static void soc_free_pcm_runtime(struct snd_soc_pcm_runtime *rtd)
454 if (!rtd)
457 list_del(&rtd->list);
459 if (delayed_work_pending(&rtd->delayed_work))
460 flush_delayed_work(&rtd->delayed_work);
461 snd_soc_pcm_component_free(rtd);
464 * we don't need to call kfree() for rtd->dev
468 * We don't need rtd->dev NULL check, because
469 * it is alloced *before* rtd.
473 * We don't need to mind freeing for rtd,
474 * because it was created from dev (= rtd->dev)
478 * rtd = devm_kzalloc(dev, ...);
479 * rtd->dev = dev
481 device_unregister(rtd->dev);
485 struct snd_soc_pcm_runtime *rtd =
489 if (rtd->close_delayed_work_func)
490 rtd->close_delayed_work_func(rtd);
496 struct snd_soc_pcm_runtime *rtd;
503 * for rtd->dev
521 * for rtd
523 rtd = devm_kzalloc(dev,
524 sizeof(*rtd) +
529 if (!rtd) {
534 rtd->dev = dev;
535 INIT_LIST_HEAD(&rtd->list);
537 INIT_LIST_HEAD(&rtd->dpcm[stream].be_clients);
538 INIT_LIST_HEAD(&rtd->dpcm[stream].fe_clients);
540 dev_set_drvdata(dev, rtd);
541 INIT_DELAYED_WORK(&rtd->delayed_work, close_delayed_work);
544 * for rtd->dais
546 rtd->dais = devm_kcalloc(dev, dai_link->num_cpus + dai_link->num_codecs,
549 if (!rtd->dais)
560 rtd->card = card;
561 rtd->dai_link = dai_link;
562 rtd->num = card->num_rtd++;
563 rtd->pmdown_time = pmdown_time; /* default power off timeout */
566 list_add_tail(&rtd->list, &card->rtd_list);
572 return rtd;
575 soc_free_pcm_runtime(rtd);
603 struct snd_soc_pcm_runtime *rtd;
605 for_each_card_rtds(card, rtd)
606 flush_delayed_work(&rtd->delayed_work);
612 struct snd_soc_pcm_runtime *rtd;
617 for_each_card_rtds(card, rtd) {
619 if (rtd->dai_link->ignore_suspend)
622 for_each_rtd_dais(rtd, i, dai) {
631 struct snd_soc_pcm_runtime *rtd;
634 for_each_card_rtds(card, rtd) {
636 if (rtd->dai_link->ignore_suspend)
640 snd_soc_dapm_stream_event(rtd, stream, event);
649 struct snd_soc_pcm_runtime *rtd;
669 for_each_card_rtds(card, rtd) {
670 if (rtd->dai_link->ignore_suspend)
673 snd_pcm_suspend_all(rtd->pcm);
688 for_each_card_rtds(card, rtd) {
690 if (rtd->dai_link->ignore_suspend)
693 for_each_rtd_components(rtd, i, component) {
1135 * @rtd: The pcm_runtime to remove
1140 struct snd_soc_pcm_runtime *rtd)
1147 snd_soc_card_remove_dai_link(card, rtd->dai_link);
1149 soc_free_pcm_runtime(rtd);
1167 struct snd_soc_pcm_runtime *rtd;
1190 rtd = soc_new_pcm_runtime(card, dai_link);
1191 if (!rtd)
1195 snd_soc_rtd_to_cpu(rtd, i) = snd_soc_find_dai(cpu);
1196 if (!snd_soc_rtd_to_cpu(rtd, i)) {
1201 snd_soc_rtd_add_component(rtd, snd_soc_rtd_to_cpu(rtd, i)->component);
1206 snd_soc_rtd_to_codec(rtd, i) = snd_soc_find_dai(codec);
1207 if (!snd_soc_rtd_to_codec(rtd, i)) {
1213 snd_soc_rtd_add_component(rtd, snd_soc_rtd_to_codec(rtd, i)->component);
1225 snd_soc_rtd_add_component(rtd, component);
1232 snd_soc_remove_pcm_runtime(card, rtd);
1256 static void snd_soc_runtime_get_dai_fmt(struct snd_soc_pcm_runtime *rtd)
1258 struct snd_soc_dai_link *dai_link = rtd->dai_link;
1299 until = snd_soc_dai_get_fmt_max_priority(rtd);
1301 for_each_rtd_dais(rtd, j, not_used) {
1304 for_each_rtd_dais(rtd, i, dai) {
1415 * @rtd: The runtime for which the DAI link format should be changed
1426 int snd_soc_runtime_set_dai_fmt(struct snd_soc_pcm_runtime *rtd,
1437 for_each_rtd_codec_dais(rtd, i, codec_dai) {
1446 for_each_rtd_cpu_dais(rtd, i, cpu_dai) {
1457 struct snd_soc_pcm_runtime *rtd)
1459 struct snd_soc_dai_link *dai_link = rtd->dai_link;
1460 struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0);
1465 ret = snd_soc_link_init(rtd);
1469 snd_soc_runtime_get_dai_fmt(rtd);
1470 ret = snd_soc_runtime_set_dai_fmt(rtd, dai_link->dai_fmt);
1475 soc_dpcm_debugfs_add(rtd);
1477 num = rtd->num;
1482 * device number and then use rtd + a base offset of the BEs.
1484 for_each_rtd_components(rtd, i, component) {
1488 if (rtd->dai_link->no_pcm)
1491 num = rtd->dai_link->id;
1495 ret = snd_soc_dai_compress_new(cpu_dai, rtd, num);
1500 ret = soc_new_pcm(rtd, num);
1507 ret = snd_soc_pcm_dai_new(rtd);
1511 rtd->initialized = true;
1515 snd_soc_link_exit(rtd);
1669 struct snd_soc_pcm_runtime *rtd;
1673 for_each_card_rtds(card, rtd) {
1674 /* remove all rtd connected DAIs in good order */
1675 snd_soc_pcm_dai_remove(rtd, order);
1682 struct snd_soc_pcm_runtime *rtd;
1686 for_each_card_rtds(card, rtd) {
1687 /* probe all rtd connected DAIs in good order */
1688 ret = snd_soc_pcm_dai_probe(rtd, order);
1700 struct snd_soc_pcm_runtime *rtd;
1704 for_each_card_rtds(card, rtd) {
1705 for_each_rtd_components(rtd, i, component) {
1718 struct snd_soc_pcm_runtime *rtd;
1722 for_each_card_rtds(card, rtd) {
1723 for_each_rtd_components(rtd, i, component) {
1979 /* machine matches, so override the rtd data */
2105 struct snd_soc_pcm_runtime *rtd, *n;
2113 for_each_card_rtds(card, rtd)
2114 if (rtd->initialized)
2115 snd_soc_link_exit(rtd);
2120 for_each_card_rtds_safe(card, rtd, n)
2121 snd_soc_remove_pcm_runtime(card, rtd);
2156 struct snd_soc_pcm_runtime *rtd;
2236 for_each_card_rtds(card, rtd) {
2237 ret = soc_init_pcm_runtime(card, rtd);