On 10/06/2016 10:37 PM, Mark Brown wrote:
On Mon, Oct 03, 2016 at 11:03:50PM +0800, mengdong.lin@linux.intel.com wrote:
Pump the version number to 5.
So, we just had a user on IRC complaining that the last round of incompatible changes in v4.7 broke their laptop audio - they had a laptop that shipped with Linux and suddenly the topology file didn't work. I think that's an indication that at this point we have an ABI we need to maintain compatibility with rather than just break things. That doesn't explicitly affect this patch but does mean that the parsing code ought to cope which is likely to have some impact here.
Topology kernel driver will check size of ABI objects to detect version mismatch between user space and kernel.
The ABI wasn't explicitly reved which suggests that it's this that triggered the issue for the user.
I've submitted topology kernel patches v6 to solve the compatibility issue caused by ABI mismatch. Now the kernel can handle topology files generated by ABI v4, which is published by alsa-lib v1.1.0 in last November. Please review.
So we can hold on user space ABI updates until all kernel patches being reviewed and merged.
+/* BE DAI flags */ +#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_RATES (1 << 0) +#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_CHANNELS (1 << 1) +#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2)
These don't seem specific to back ends, people can use topologies for DSPs on off-SoC devices which might also want to use these.
'BE' is removed in the comments, in kernel side at first.
- __le32 be_dai_elems; /* number of BE DAI elements */
- __le32 reserved[20]; /* reserved for new ABI element types */
Thinking about the above I'm wondering if it doesn't make more sense to call these physical links rather than back ends - that term is going to be clearer to people who don't use DPCM.
"be_dai_elems" is renamed to "dai_elems" in kernel side at first, and this change is backward compatible.
Thanks Mengdong