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.
Yes. Now if the kernel finds a mismatch of ABI object size, it will just return error and so old version of topology files cannot work. We'll try to support ABI version 4 and new versions in kernel. It seems topology have real users from version 4.
+/* 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.
Yes. Can we take them as generic flags for DAI and DAI links?
- __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.
May we call it a "phy_dai_elems", to indicate physical DAIs?
Now the ABI struct "snd_soc_tplg_be_dai" is already in kernel but no real users in user space. Can we rename it? Or add a new ABI struct?
Thanks Mengdong