[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