History

Merge tag 'sound-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai: "The only bulk changes in this request is ABI updates for ASoC topology API. It's a new API that was introduced in 4.2, and we'd like to avoid ABI change after the release, so it's taken now. As there is no real in-tree user for this API, it should be fairly safe. Other than that, the usual small fixes are found in various drivers: ASoC cs4265, rt5645, intel-sst, firewire, oxygen and HD-audio" * tag 'sound-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ASoC: topology: Add private data type and bump ABI version to 3 ASoC: topology: Add ops support to byte controls UAPI ASoC: topology: Update TLV support so we can support more TLV types ASoC: topology: add private data to manifest ASoC: topology: Add subsequence in topology ALSA: hda - one Dell machine needs the headphone white noise fixup ALSA: fireworks/firewire-lib: add support for recent firmware quirk Revert "ALSA: fireworks: add support for AudioFire2 quirk" ASoC: topology: fix typo in soc_tplg_kcontrol_bind_io() ALSA: HDA: Dont check return for snd_hdac_chip_readl ALSA: HDA: Fix stream assignment for host in decoupled mode ASoC: rt5645: Fix lost pin setting for DMIC1 ALSA: oxygen: Fix logical-not-parentheses warning ASoC: Intel: sst_byt: fix initialize 'NULL device *' issue ASoC: Intel: haswell: fix initialize 'NULL device *' issue ASoC: cs4265: Fix setting dai format for Left/Right Justified

Linus Torvalds committed 11 years ago

Commit f0943012 parents ea8dc1a 6ac7ada16 files · +108 −50Browse files

Showing the changes to include/uapi (1 of 16 files). Show all

Unified · Split

include/uapi/sound/asoc.h+24−11
@@ -77,7 +77,7 @@ · 76 unmodified lines
7777 #define SND_SOC_TPLG_NUM_TEXTS 16
7878
7979 /* ABI version */
80−#define SND_SOC_TPLG_ABI_VERSION 0x2
80+#define SND_SOC_TPLG_ABI_VERSION 0x3
8181
8282 /* Max size of TLV data */
8383 #define SND_SOC_TPLG_TLV_SIZE 32
@@ -97,7 +97,8 @@ · 13 unmodified lines
9797 #define SND_SOC_TPLG_TYPE_PCM 7
9898 #define SND_SOC_TPLG_TYPE_MANIFEST 8
9999 #define SND_SOC_TPLG_TYPE_CODEC_LINK 9
100−#define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_CODEC_LINK
100+#define SND_SOC_TPLG_TYPE_PDATA 10
101+#define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_PDATA
101102
102103 /* vendor block IDs - please add new vendor types to end */
103104 #define SND_SOC_TPLG_TYPE_VENDOR_FW 1000
@@ -137,11 +138,19 @@ struct snd_soc_tplg_private { · 33 unmodified lines
137138 /*
138139 * Kcontrol TLV data.
139140 */
141+struct snd_soc_tplg_tlv_dbscale {
142+ __le32 min;
143+ __le32 step;
144+ __le32 mute;
145+} __attribute__((packed));
146+
140147 struct snd_soc_tplg_ctl_tlv {
141− __le32 size; /* in bytes aligned to 4 */
142− __le32 numid; /* control element numeric identification */
143− __le32 count; /* number of elem in data array */
144− __le32 data[SND_SOC_TPLG_TLV_SIZE];
148+ __le32 size; /* in bytes of this structure */
149+ __le32 type; /* SNDRV_CTL_TLVT_*, type of TLV */
150+ union {
151+ __le32 data[SND_SOC_TPLG_TLV_SIZE];
152+ struct snd_soc_tplg_tlv_dbscale scale;
153+ };
145154 } __attribute__((packed));
146155
147156 /*
@@ -155,9 +164,11 @@ struct snd_soc_tplg_channel { · 7 unmodified lines
155164 } __attribute__((packed));
156165
157166 /*
158− * Kcontrol Operations IDs
167+ * Genericl Operations IDs, for binding Kcontrol or Bytes ext ops
168+ * Kcontrol ops need get/put/info.
169+ * Bytes ext ops need get/put.
159170 */
160−struct snd_soc_tplg_kcontrol_ops_id {
171+struct snd_soc_tplg_io_ops {
161172 __le32 get;
162173 __le32 put;
163174 __le32 info;
@@ -171,8 +182,8 @@ struct snd_soc_tplg_ctl_hdr { · 7 unmodified lines
171182 __le32 type;
172183 char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
173184 __le32 access;
174− struct snd_soc_tplg_kcontrol_ops_id ops;
175− __le32 tlv_size; /* non zero means control has TLV data */
185+ struct snd_soc_tplg_io_ops ops;
186+ struct snd_soc_tplg_ctl_tlv tlv;
176187 } __attribute__((packed));
177188
178189 /*
@@ -238,6 +249,7 @@ struct snd_soc_tplg_manifest { · 59 unmodified lines
238249 __le32 graph_elems; /* number of graph elements */
239250 __le32 dai_elems; /* number of DAI elements */
240251 __le32 dai_link_elems; /* number of DAI link elements */
252+ struct snd_soc_tplg_private priv;
241253 } __attribute__((packed));
242254
243255 /*
@@ -259,7 +271,6 @@ struct snd_soc_tplg_mixer_control { · 15 unmodified lines
259271 __le32 invert;
260272 __le32 num_channels;
261273 struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
262− struct snd_soc_tplg_ctl_tlv tlv;
263274 struct snd_soc_tplg_private priv;
264275 } __attribute__((packed));
265276
@@ -303,6 +314,7 @@ struct snd_soc_tplg_bytes_control { · 37 unmodified lines
303314 __le32 mask;
304315 __le32 base;
305316 __le32 num_regs;
317+ struct snd_soc_tplg_io_ops ext_ops;
306318 struct snd_soc_tplg_private priv;
307319 } __attribute__((packed));
308320
@@ -347,6 +359,7 @@ struct snd_soc_tplg_dapm_widget { · 38 unmodified lines
347359 __le32 reg; /* negative reg = no direct dapm */
348360 __le32 shift; /* bits to shift */
349361 __le32 mask; /* non-shifted mask */
362+ __le32 subseq; /* sort within widget type */
350363 __u32 invert; /* invert the power bit */
351364 __u32 ignore_suspend; /* kept enabled over suspend */
352365 __u16 event_flags;