Lines Matching defs:pcm
46 struct snd_soc_tplg_pcm *pcm;
54 pcm = elem->pcm;
56 if (pcm && !strcmp(pcm->dai_name, id))
63 /* copy referenced caps to the parent (pcm or be dai) */
70 tplg_dbg("Copy pcm caps (%ld bytes) from '%s' to '%s'",
103 elem->pcm->caps);
396 /* Parse pcm stream capabilities */
614 /* Parse the caps and config of a pcm stream */
621 struct snd_soc_tplg_pcm *pcm;
634 pcm = elem->pcm;
635 playback = &pcm->playback;
636 capture = &pcm->capture;
637 caps = pcm->caps;
685 /* Save the caps and config of a pcm stream */
705 streams[0] = elem->pcm->playback;
706 streams[1] = elem->pcm->capture;
707 caps = elem->pcm->caps;
726 err = tplg_save_printf(dst, pfx, "pcm.%s {\n", stream_ids[stream]);
745 struct snd_soc_tplg_pcm *pcm = elem->pcm;
753 snd_strlcpy(pcm->dai_name, id, SNDRV_CTL_ELEM_ID_NAME_MAXLEN);
769 unaligned_put32(&pcm->dai_id, dai_id);
777 /* Save the caps and config of a pcm stream */
782 struct snd_soc_tplg_pcm *pcm = elem->pcm;
785 if (strlen(pcm->dai_name))
786 err = tplg_save_printf(dst, pfx, "dai.'%s'.id %u\n", pcm->dai_name, pcm->dai_id);
787 else if (pcm->dai_id > 0)
788 err = tplg_save_printf(dst, pfx, "dai.0.id %u\n", pcm->dai_id);
843 struct snd_soc_tplg_pcm *pcm;
854 pcm = elem->pcm;
855 pcm->size = elem->size;
856 snd_strlcpy(pcm->pcm_name, elem->id, SNDRV_CTL_ELEM_ID_NAME_MAXLEN);
873 if (parse_unsigned(n, &pcm->pcm_id))
878 if (strcmp(id, "pcm") == 0) {
891 pcm->compress = ival;
909 &pcm->flag_mask, &pcm->flags);
918 &pcm->flag_mask, &pcm->flags);
927 &pcm->flag_mask, &pcm->flags);
936 &pcm->flag_mask, &pcm->flags);
959 struct snd_soc_tplg_pcm *pcm = elem->pcm;
968 if (err >= 0 && pcm->pcm_id)
970 pcm->pcm_id);
971 if (err >= 0 && pcm->compress)
979 err = save_flags(pcm->flags, pcm->flag_mask, dst, pfx);
1043 if (strcmp(id, "pcm") == 0) {
1780 struct snd_tplg_pcm_template *pcm_tpl = t->pcm;
1782 struct snd_soc_tplg_pcm *pcm;
1796 pcm = elem->pcm;
1797 pcm->size = elem->size;
1799 snd_strlcpy(pcm->pcm_name, pcm_tpl->pcm_name,
1801 snd_strlcpy(pcm->dai_name, pcm_tpl->dai_name,
1803 pcm->pcm_id = pcm_tpl->pcm_id;
1804 pcm->dai_id = pcm_tpl->dai_id;
1805 pcm->playback = pcm_tpl->playback;
1806 pcm->capture = pcm_tpl->capture;
1807 pcm->compress = pcm_tpl->compress;
1815 snd_strlcpy(pcm->caps[i].name, pcm_tpl->caps[i]->name,
1816 sizeof(pcm->caps[i].name));
1819 pcm->flag_mask = pcm_tpl->flag_mask;
1820 pcm->flags = pcm_tpl->flags;
1822 pcm->num_streams = pcm_tpl->num_streams;
1824 tplg_add_stream_object(&pcm->stream[i], &pcm_tpl->stream[i]);
1992 /* decode pcm from the binary input */
1998 struct snd_soc_tplg_pcm *pcm;
2016 pcm = bin;
2018 if (size < sizeof(*pcm)) {
2019 SNDERR("pcm: small size %d", size);
2022 if (sizeof(*pcm) != pcm->size) {
2023 SNDERR("pcm: unknown element size %d (expected %zd)",
2024 pcm->size, sizeof(*pcm));
2027 if (pcm->num_streams > SND_SOC_TPLG_STREAM_CONFIG_MAX) {
2028 SNDERR("pcm: wrong number of streams %d", pcm->num_streams);
2031 if (sizeof(*pcm) + pcm->priv.size > size) {
2032 SNDERR("pcm: wrong private data size %d", pcm->priv.size);
2036 tplg_log(tplg, 'D', pos, "pcm: size %d private size %d streams %d",
2037 pcm->size, pcm->priv.size, pcm->num_streams);
2039 pt->pcm_name = pcm->pcm_name;
2040 tplg_log(tplg, 'D', pos, "pcm: pcm_name '%s'", pt->pcm_name);
2041 pt->dai_name = pcm->dai_name;
2042 tplg_log(tplg, 'D', pos, "pcm: dai_name '%s'", pt->dai_name);
2043 pt->pcm_id = pcm->pcm_id;
2044 pt->dai_id = pcm->dai_id;
2045 tplg_log(tplg, 'D', pos, "pcm: pcm_id %d dai_id %d", pt->pcm_id, pt->dai_id);
2046 pt->playback = pcm->playback;
2047 pt->capture = pcm->capture;
2048 pt->compress = pcm->compress;
2049 tplg_log(tplg, 'D', pos, "pcm: playback %d capture %d compress %d",
2051 pt->num_streams = pcm->num_streams;
2052 pt->flag_mask = pcm->flag_mask;
2053 pt->flags = pcm->flags;
2054 for (i = 0; i < pcm->num_streams; i++) {
2056 if (pcm->stream[i].size != sizeof(pcm->stream[0])) {
2057 SNDERR("pcm: unknown stream structure size %d",
2058 pcm->stream[i].size);
2061 stream->name = pcm->stream[i].name;
2064 stream->format = pcm->stream[i].format;
2065 stream->rate = pcm->stream[i].rate;
2066 stream->period_bytes = pcm->stream[i].period_bytes;
2067 stream->buffer_bytes = pcm->stream[i].buffer_bytes;
2068 stream->channels = pcm->stream[i].channels;
2071 if (i == 0 && !pcm->playback)
2073 if (i == 1 && !pcm->capture)
2077 if (pcm->caps[i].size != sizeof(pcm->caps[0])) {
2078 SNDERR("pcm: unknown caps structure size %d",
2079 pcm->caps[i].size);
2082 cap->name = pcm->caps[i].name;
2085 cap->formats = pcm->caps[i].formats;
2086 cap->rates = pcm->caps[i].rates;
2087 cap->rate_min = pcm->caps[i].rate_min;
2088 cap->rate_max = pcm->caps[i].rate_max;
2089 cap->channels_min = pcm->caps[i].channels_min;
2090 cap->channels_max = pcm->caps[i].channels_max;
2091 cap->periods_min = pcm->caps[i].periods_min;
2092 cap->periods_max = pcm->caps[i].periods_max;
2093 cap->period_size_min = pcm->caps[i].period_size_min;
2094 cap->period_size_max = pcm->caps[i].period_size_max;
2095 cap->buffer_size_min = pcm->caps[i].buffer_size_min;
2096 cap->buffer_size_max = pcm->caps[i].buffer_size_max;
2097 cap->sig_bits = pcm->caps[i].sig_bits;
2101 "pcm: private start");
2102 pt->priv = &pcm->priv;
2104 bin += sizeof(*pcm) + pcm->priv.size;
2105 size -= sizeof(*pcm) + pcm->priv.size;
2106 pos += sizeof(*pcm) + pcm->priv.size;
2108 t.pcm = pt;