mirror of
https://gitee.com/openharmony/third_party_alsa-lib
synced 2024-11-23 07:30:32 +00:00
topology: Add API to set a vendor specific version number
This vendor-specific version number is optional. It will be written to the 'version' field of each block header of the binary toplogy data file. The vendor driver can check this number for further processing in kernel. The topology ABI version number is still stored in the 'abi' field of block headers. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Reviewed-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
c82417650a
commit
8b0a5310bf
@ -690,6 +690,14 @@ int snd_tplg_build(snd_tplg_t *tplg, const char *outfile);
|
||||
*/
|
||||
int snd_tplg_set_manifest_data(snd_tplg_t *tplg, const void *data, int len);
|
||||
|
||||
/**
|
||||
* \brief Set an optional vendor specific version number.
|
||||
* \param tplg Topology instance.
|
||||
* \param version Vendor specific version number.
|
||||
* \return Zero on success, otherwise a negative error code
|
||||
*/
|
||||
int snd_tplg_set_version(snd_tplg_t *tplg, unsigned int version);
|
||||
|
||||
/* \} */
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -89,7 +89,7 @@ static int write_data_block(snd_tplg_t *tplg, int size, int tplg_type,
|
||||
|
||||
/* write the header for this block */
|
||||
ret = write_block_header(tplg, tplg_type, 0,
|
||||
SND_SOC_TPLG_ABI_VERSION, 0, size, 1);
|
||||
tplg->version, 0, size, 1);
|
||||
if (ret < 0) {
|
||||
SNDERR("error: failed to write %s block %d\n", obj_name, ret);
|
||||
return ret;
|
||||
@ -124,7 +124,7 @@ static int write_elem_block(snd_tplg_t *tplg,
|
||||
vendor_type = elem->vendor_type;
|
||||
|
||||
ret = write_block_header(tplg, tplg_type, vendor_type,
|
||||
SND_SOC_TPLG_ABI_VERSION, 0, size, count);
|
||||
tplg->version, 0, size, count);
|
||||
if (ret < 0) {
|
||||
SNDERR("error: failed to write %s block %d\n",
|
||||
obj_name, ret);
|
||||
@ -242,7 +242,7 @@ static int write_manifest_data(snd_tplg_t *tplg)
|
||||
|
||||
/* write the header for this block */
|
||||
ret = write_block_header(tplg, SND_SOC_TPLG_TYPE_MANIFEST, 0,
|
||||
SND_SOC_TPLG_ABI_VERSION, 0,
|
||||
tplg->version, 0,
|
||||
sizeof(tplg->manifest) + tplg->manifest.priv.size, 1);
|
||||
if (ret < 0) {
|
||||
SNDERR("error: failed to write manifest block %d\n", ret);
|
||||
|
@ -361,6 +361,13 @@ int snd_tplg_set_manifest_data(snd_tplg_t *tplg, const void *data, int len)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int snd_tplg_set_version(snd_tplg_t *tplg, unsigned int version)
|
||||
{
|
||||
tplg->version = version;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void snd_tplg_verbose(snd_tplg_t *tplg, int verbose)
|
||||
{
|
||||
tplg->verbose = verbose;
|
||||
|
Loading…
Reference in New Issue
Block a user