diff mbox

[v4,03/11] ASoC: topology: Not quit on topology file of ABI version 4

Message ID 84bb9e950f081bae7acc82423ddcd62be88f5237.1476108863.git.mengdong.lin@linux.intel.com (mailing list archive)
State Accepted
Commit 288b8da7e992f0b86b283f98e92885781ffdcaee
Headers show

Commit Message

mengdong.lin@linux.intel.com Oct. 10, 2016, 2:24 p.m. UTC
From: Mengdong Lin <mengdong.lin@linux.intel.com>

Users start to use topology ABI from v4. ABI v5 updated existing manifest
and PCM elements. Two previous patches can support these ABI updates from
v4 in a backward compatible way. So kernel can continue parsing if the
topology file from user space is generated by ABI v4.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
diff mbox

Patch

diff --git a/include/uapi/sound/asoc.h b/include/uapi/sound/asoc.h
index 33d00a4..ed9090f 100644
--- a/include/uapi/sound/asoc.h
+++ b/include/uapi/sound/asoc.h
@@ -83,7 +83,8 @@ 
 #define SND_SOC_TPLG_NUM_TEXTS		16
 
 /* 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 */
 #define SND_SOC_TPLG_TLV_SIZE		32
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index dfcefb1..07372f4 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -2051,7 +2051,9 @@  static int soc_valid_header(struct soc_tplg *tplg,
 		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,
 			"ASoC: pass %d invalid ABI version got 0x%x need 0x%x at offset 0x%lx size 0x%zx.\n",
 			tplg->pass, hdr->abi,