mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-11 13:30:05 -05:00
topology: Export physical DAIs to the binary for kernel
Export the physical DAI objects to the binary output file for kernel. For physical DAIs defined by the text conf file, find and merge their stream capablities and private data before exporting. Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com> Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
9117715371
commit
6a93f24dac
4 changed files with 71 additions and 0 deletions
|
|
@ -129,6 +129,61 @@ int tplg_build_pcms(snd_tplg_t *tplg, unsigned int type)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* build a physical DAI */
|
||||
static int tplg_build_dai(snd_tplg_t *tplg, struct tplg_elem *elem)
|
||||
{
|
||||
struct tplg_ref *ref;
|
||||
struct list_head *base, *pos;
|
||||
int err = 0;
|
||||
|
||||
/* get playback & capture stream caps */
|
||||
err = tplg_build_stream_caps(tplg, elem->id, elem->dai->caps);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
/* get private data */
|
||||
base = &elem->ref_list;
|
||||
list_for_each(pos, base) {
|
||||
|
||||
ref = list_entry(pos, struct tplg_ref, list);
|
||||
|
||||
if (ref->type == SND_TPLG_TYPE_DATA) {
|
||||
err = tplg_copy_data(tplg, elem, ref);
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
/* add DAI to manifest */
|
||||
tplg->manifest.dai_elems++;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* build physical DAIs*/
|
||||
int tplg_build_dais(snd_tplg_t *tplg, unsigned int type)
|
||||
{
|
||||
struct list_head *base, *pos;
|
||||
struct tplg_elem *elem;
|
||||
int err = 0;
|
||||
|
||||
base = &tplg->dai_list;
|
||||
list_for_each(pos, base) {
|
||||
|
||||
elem = list_entry(pos, struct tplg_elem, list);
|
||||
if (elem->type != type) {
|
||||
SNDERR("error: invalid elem '%s'\n", elem->id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
err = tplg_build_dai(tplg, elem);
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int tplg_build_stream_cfg(snd_tplg_t *tplg,
|
||||
struct snd_soc_tplg_stream *stream, int num_streams)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue