On Wed, 2015-08-05 at 12:29 +0100, Mark Brown wrote:
On Wed, Aug 05, 2015 at 11:11:07AM +0100, Liam Girdwood wrote:
From: Mengdong Lin mengdong.lin@intel.com
This is the kernel patch - a corresponding alsa-lib patch has also been sent.
This patch introduces multiple changes and should really have been sent separately. Please also try to keep your commit messages and especially subject lines under 80 colummns so that they are legible.
The concern with multiple patches is that it's more likely to break runtime bisection/alignment with userspace (but I guess we have that anyway now), hence the squashing into a single patch for userspace and kernel.
I'll rework into six patches (three kernel and three userspace).
Removed the following fields from topology TLV struct:
- size/count: type can decide the size.
struct snd_soc_tplg_ctl_tlv {
- __le32 size; /* in bytes aligned to 4 */
- __le32 numid; /* control element numeric identification */
- __le32 count; /* number of elem in data array */
- __le32 data[SND_SOC_TPLG_TLV_SIZE];
- __le32 size; /* in bytes of this structure */
- __le32 type; /* SNDRV_CTL_TLVT_*, type of TLV */
- union {
struct snd_soc_tplg_tlv_dbscale scale;
- };
The combination of removing size fromm the struct and not having data means that we can't in the future add a new type which has a larger size than the current one without confusing older systems (Rather than just having them drop the TLV information). I'm not sure how likely that really is but it's a consideration.
Oh, data should have still been in there. Size just had it's comment fixed to match the other size usage in the other structures.
Liam