[alsa-devel] [PATCH 1/5] topology: ABI - Add the types for BE DAI
Mengdong Lin
mengdong.lin at linux.intel.com
Sat Oct 8 10:00:50 CEST 2016
On 10/06/2016 10:37 PM, Mark Brown wrote:
> On Mon, Oct 03, 2016 at 11:03:50PM +0800, mengdong.lin at 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
More information about the Alsa-devel
mailing list