Commit 288b8da7 authored by Mengdong Lin's avatar Mengdong Lin Committed by Mark Brown

ASoC: topology: Support topology file of ABI v4

Users start to use topology ABI from v4. ABI v5 updated existing manifest
and PCM elements. Two previous patches can support these ABI updates in a
backward compatible way. So if the topology file from user space is
generated by ABI v4, kernel will no longer quit but continue parsing.
Signed-off-by: default avatarMengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 8f27c4ab
...@@ -83,7 +83,8 @@ ...@@ -83,7 +83,8 @@
#define SND_SOC_TPLG_NUM_TEXTS 16 #define SND_SOC_TPLG_NUM_TEXTS 16
/* ABI version */ /* ABI version */
#define SND_SOC_TPLG_ABI_VERSION 0x5 #define SND_SOC_TPLG_ABI_VERSION 0x5 /* current version */
#define SND_SOC_TPLG_ABI_VERSION_MIN 0x4 /* oldest version supported */
/* Max size of TLV data */ /* Max size of TLV data */
#define SND_SOC_TPLG_TLV_SIZE 32 #define SND_SOC_TPLG_TLV_SIZE 32
......
...@@ -2056,7 +2056,9 @@ static int soc_valid_header(struct soc_tplg *tplg, ...@@ -2056,7 +2056,9 @@ static int soc_valid_header(struct soc_tplg *tplg,
return -EINVAL; return -EINVAL;
} }
if (hdr->abi != SND_SOC_TPLG_ABI_VERSION) { /* Support ABI from version 4 */
if (hdr->abi > SND_SOC_TPLG_ABI_VERSION
|| hdr->abi < SND_SOC_TPLG_ABI_VERSION_MIN) {
dev_err(tplg->dev, dev_err(tplg->dev,
"ASoC: pass %d invalid ABI version got 0x%x need 0x%x at offset 0x%lx size 0x%zx.\n", "ASoC: pass %d invalid ABI version got 0x%x need 0x%x at offset 0x%lx size 0x%zx.\n",
tplg->pass, hdr->abi, tplg->pass, hdr->abi,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment