History

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

Pull sound updates from Takashi Iwai: "Here is the first batch of updates for sound system on 4.4-rc1. Again at this time, the update looks fairly calm; no big changes in either ALSA core or ASoC infrastructures, rather all small cleanups, in addition to the new stuff as usual. The biggest changes are about Firewire sound devices. It gained lots of new device support, and MIDI functionality. Also there are updates for a few still working-in-progress stuff (topology API and ASoC skylake), too. But overall, this update should give no big surprise. Some highlights are below: Core: - A few more Kconfig items for tinification; it's marked as EXPERT, so normal user should't be bothered :) - Refactoring with a new PCM hw_constraint helper - Removal of unused transfer_ack_{begin,end} PCM callbacks Firewire: - Restructuring of code subtree, lots of refactoring - Support AMDTP variants - New driver for Digidesign 002/003 family - Adds support for TASCAM FireOne to ALSA OXFW driver - Add MIDI support to TASCAM and Digi00x devices HD-Audio: - Automated modalias generation for codec drivers, finally - Improvement on heuristics for setting mixer name - A few fixes for longstanding bugs on Creative CA0132 cards - Addition of audio rate callback with i915 communication - Fix suspend issue on recent Dell XPS - Intel Lewisburg controller support ASoC: - Updates to the topology userspace interface - Big updates to the Renesas support (rcar) - More updates for supporting Intel Sky Lake systems - New drivers for Asahi Kasei Microdevices AK4613, Allwinnner A10, Cirrus Logic WM8998, Dialog DA7219, Nuvoton NAU8825, Rockchip S/PDIF, and Atmel class D amplifier USB-Audio: - A fix for newer Roland MIDI devices - Quirks and workarounds for Zoom R16/24 device Misc: - A few fixes for some old Cirrus CS46xx PCI sound boards - Yet another fixes for some old ESS Maestro3 PCI sound boards" * tag 'sound-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (330 commits) ALSA: hda - Add Intel Lewisburg device IDs Audio ALSA: hda - Apply pin fixup for HP ProBook 6550b ALSA: hda - Fix lost 4k BDL boundary workaround ALSA: maestro3: Fix Allegro mute until master volume/mute is touched ALSA: maestro3: Enable docking support for Dell Latitude C810 ALSA: firewire-digi00x: add another rawmidi character device for MIDI control ports ALSA: firewire-digi00x: add MIDI operations for MIDI control port ALSA: firewire-digi00x: rename identifiers of MIDI operation for physical ports ALSA: cs46xx: Fix suspend for all channels ALSA: cs46xx: Fix Duplicate front for CS4294 and CS4298 codecs ALSA: DocBook: Add soc-ops.c and soc-compress.c ALSA: hda - Add / fix kernel doc comments ALSA: Constify ratden/ratnum constraints ALSA: hda - Disable 64bit address for Creative HDA controllers ALSA: hda/realtek - Dell XPS one ALC3260 speaker no sound after resume back ALSA: hda/ca0132 - Convert leftover pr_info() and pr_err() ASoC: fsl: Use #ifdef instead of #if for CONFIG_PM_SLEEP ASoC: rt5645: Sort the order for register bit defines ASoC: dwc: add check for master/slave format ASoC: rt5645: Add the HWEQ for the speaker output ...

Linus Torvalds committed 11 years ago

Commit 0280d1a2 parents 5bc23a0 5cf92c8307 files · +21221 −3293Browse files

Showing the changes to include/uapi (5 of 307 files). Show all

Unified · Split

5 files
  1. include/uapi/sound/asoc.h +41 −35
  2. include/uapi/sound/asound.h +3 −1
  3. include/uapi/sound/emu10k1.h +11 −3
  4. include/uapi/sound/firewire.h +9 −0
  5. include/uapi/sound/hdspm.h +18 −22
include/uapi/sound/asoc.h+41−35
@@ -83,7 +83,7 @@ · 82 unmodified lines
8383 #define SND_SOC_TPLG_NUM_TEXTS 16
8484
8585 /* ABI version */
86−#define SND_SOC_TPLG_ABI_VERSION 0x3
86+#define SND_SOC_TPLG_ABI_VERSION 0x4
8787
8888 /* Max size of TLV data */
8989 #define SND_SOC_TPLG_TLV_SIZE 32
@@ -103,7 +103,8 @@ · 13 unmodified lines
103103 #define SND_SOC_TPLG_TYPE_PCM 7
104104 #define SND_SOC_TPLG_TYPE_MANIFEST 8
105105 #define SND_SOC_TPLG_TYPE_CODEC_LINK 9
106−#define SND_SOC_TPLG_TYPE_PDATA 10
106+#define SND_SOC_TPLG_TYPE_BACKEND_LINK 10
107+#define SND_SOC_TPLG_TYPE_PDATA 11
107108 #define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_PDATA
108109
109110 /* vendor block IDs - please add new vendor types to end */
@@ -198,7 +199,7 @@ struct snd_soc_tplg_ctl_hdr { · 88 unmodified lines
198199 struct snd_soc_tplg_stream_caps {
199200 __le32 size; /* in bytes of this structure */
200201 char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
201− __le64 formats[SND_SOC_TPLG_MAX_FORMATS]; /* supported formats SNDRV_PCM_FMTBIT_* */
202+ __le64 formats; /* supported formats SNDRV_PCM_FMTBIT_* */
202203 __le32 rates; /* supported rates SNDRV_PCM_RATE_* */
203204 __le32 rate_min; /* min rate */
204205 __le32 rate_max; /* max rate */
@@ -217,23 +218,12 @@ struct snd_soc_tplg_stream_caps { · 12 unmodified lines
217218 */
218219 struct snd_soc_tplg_stream {
219220 __le32 size; /* in bytes of this structure */
221+ char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* Name of the stream */
220222 __le64 format; /* SNDRV_PCM_FMTBIT_* */
221223 __le32 rate; /* SNDRV_PCM_RATE_* */
222224 __le32 period_bytes; /* size of period in bytes */
223225 __le32 buffer_bytes; /* size of buffer in bytes */
224226 __le32 channels; /* channels */
225− __le32 tdm_slot; /* optional BE bitmask of supported TDM slots */
226− __le32 dai_fmt; /* SND_SOC_DAIFMT_ */
227−} __attribute__((packed));
228−
229−/*
230− * Duplex stream configuration supported by SW/FW.
231− */
232−struct snd_soc_tplg_stream_config {
233− __le32 size; /* in bytes of this structure */
234− char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
235− struct snd_soc_tplg_stream playback;
236− struct snd_soc_tplg_stream capture;
237227 } __attribute__((packed));
238228
239229 /*
@@ -366,11 +356,11 @@ struct snd_soc_tplg_dapm_widget { · 126 unmodified lines
366356 __le32 shift; /* bits to shift */
367357 __le32 mask; /* non-shifted mask */
368358 __le32 subseq; /* sort within widget type */
369− __u32 invert; /* invert the power bit */
370− __u32 ignore_suspend; /* kept enabled over suspend */
371− __u16 event_flags;
372− __u16 event_type;
373− __u16 num_kcontrols;
359+ __le32 invert; /* invert the power bit */
360+ __le32 ignore_suspend; /* kept enabled over suspend */
361+ __le16 event_flags;
362+ __le16 event_type;
363+ __le32 num_kcontrols;
374364 struct snd_soc_tplg_private priv;
375365 /*
376366 * kcontrols that relate to this widget
@@ -378,30 +368,46 @@ struct snd_soc_tplg_dapm_widget { · 1 unmodified line
378368 */
379369 } __attribute__((packed));
380370
381−struct snd_soc_tplg_pcm_cfg_caps {
382− struct snd_soc_tplg_stream_caps caps;
383− struct snd_soc_tplg_stream_config configs[SND_SOC_TPLG_STREAM_CONFIG_MAX];
384− __le32 num_configs; /* number of configs */
385−} __attribute__((packed));
386371
387372 /*
388− * Describes SW/FW specific features of PCM or DAI link.
373+ * Describes SW/FW specific features of PCM (FE DAI & DAI link).
389374 *
390− * File block representation for PCM/DAI-Link :-
375+ * File block representation for PCM :-
391376 * +-----------------------------------+-----+
392377 * | struct snd_soc_tplg_hdr | 1 |
393378 * +-----------------------------------+-----+
394− * | struct snd_soc_tplg_dapm_pcm_dai | N |
379+ * | struct snd_soc_tplg_pcm | N |
395380 * +-----------------------------------+-----+
396381 */
397−struct snd_soc_tplg_pcm_dai {
382+struct snd_soc_tplg_pcm {
398383 __le32 size; /* in bytes of this structure */
399− char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
400− __le32 id; /* unique ID - used to match */
401− __le32 playback; /* supports playback mode */
402− __le32 capture; /* supports capture mode */
403− __le32 compress; /* 1 = compressed; 0 = PCM */
404− struct snd_soc_tplg_pcm_cfg_caps capconf[2]; /* capabilities and configs */
384+ char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
385+ char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
386+ __le32 pcm_id; /* unique ID - used to match */
387+ __le32 dai_id; /* unique ID - used to match */
388+ __le32 playback; /* supports playback mode */
389+ __le32 capture; /* supports capture mode */
390+ __le32 compress; /* 1 = compressed; 0 = PCM */
391+ struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* for DAI link */
392+ __le32 num_streams; /* number of streams */
393+ struct snd_soc_tplg_stream_caps caps[2]; /* playback and capture for DAI */
405394 } __attribute__((packed));
406395
396+
397+/*
398+ * Describes the BE or CC link runtime supported configs or params
399+ *
400+ * File block representation for BE/CC link config :-
401+ * +-----------------------------------+-----+
402+ * | struct snd_soc_tplg_hdr | 1 |
403+ * +-----------------------------------+-----+
404+ * | struct snd_soc_tplg_link_config | N |
405+ * +-----------------------------------+-----+
406+ */
407+struct snd_soc_tplg_link_config {
408+ __le32 size; /* in bytes of this structure */
409+ __le32 id; /* unique ID - used to match */
410+ struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* supported configs playback and captrure */
411+ __le32 num_streams; /* number of streams */
412+} __attribute__((packed));
407413 #endif
include/uapi/sound/asound.h+3−1
@@ -100,9 +100,11 @@ enum { · 99 unmodified lines
100100 SNDRV_HWDEP_IFACE_FW_FIREWORKS, /* Echo Audio Fireworks based device */
101101 SNDRV_HWDEP_IFACE_FW_BEBOB, /* BridgeCo BeBoB based device */
102102 SNDRV_HWDEP_IFACE_FW_OXFW, /* Oxford OXFW970/971 based device */
103+ SNDRV_HWDEP_IFACE_FW_DIGI00X, /* Digidesign Digi 002/003 family */
104+ SNDRV_HWDEP_IFACE_FW_TASCAM, /* TASCAM FireWire series */
103105
104106 /* Don't forget to change the following: */
105− SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_FW_OXFW
107+ SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_FW_TASCAM
106108 };
107109
108110 struct snd_hwdep_info {
include/uapi/sound/emu10k1.h+11−3
@@ -34,6 +34,14 @@ · 33 unmodified lines
3434
3535 #define EMU10K1_FX8010_PCM_COUNT 8
3636
37+/*
38+ * Following definition is copied from linux/types.h to support compiling
39+ * this header file in userspace since they are not generally available for
40+ * uapi headers.
41+ */
42+#define __EMU10K1_DECLARE_BITMAP(name,bits) \
43+ unsigned long name[(bits) / (sizeof(unsigned long) * 8)]
44+
3745 /* instruction set */
3846 #define iMAC0 0x00 /* R = A + (X * Y >> 31) ; saturation */
3947 #define iMAC1 0x01 /* R = A + (-X * Y >> 31) ; saturation */
@@ -300,7 +308,7 @@ struct snd_emu10k1_fx8010_control_old_gpr { · 260 unmodified lines
300308 struct snd_emu10k1_fx8010_code {
301309 char name[128];
302310
303− DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
311+ __EMU10K1_DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
304312 __u32 __user *gpr_map; /* initializers */
305313
306314 unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */
@@ -313,11 +321,11 @@ struct snd_emu10k1_fx8010_code { · 6 unmodified lines
313321 unsigned int gpr_list_control_total; /* total count of GPR controls */
314322 struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */
315323
316− DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
324+ __EMU10K1_DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
317325 __u32 __user *tram_data_map; /* data initializers */
318326 __u32 __user *tram_addr_map; /* map initializers */
319327
320− DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
328+ __EMU10K1_DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
321329 __u32 __user *code; /* one instruction - 64 bits */
322330 };
323331
include/uapi/sound/firewire.h+9−0
@@ -9,6 +9,7 @@ · 8 unmodified lines
99 #define SNDRV_FIREWIRE_EVENT_LOCK_STATUS 0x000010cc
1010 #define SNDRV_FIREWIRE_EVENT_DICE_NOTIFICATION 0xd1ce004e
1111 #define SNDRV_FIREWIRE_EVENT_EFW_RESPONSE 0x4e617475
12+#define SNDRV_FIREWIRE_EVENT_DIGI00X_MESSAGE 0x746e736c
1213
1314 struct snd_firewire_event_common {
1415 unsigned int type; /* SNDRV_FIREWIRE_EVENT_xxx */
@@ -40,11 +41,17 @@ struct snd_firewire_event_efw_response { · 25 unmodified lines
4041 __be32 response[0]; /* some responses */
4142 };
4243
44+struct snd_firewire_event_digi00x_message {
45+ unsigned int type;
46+ __u32 message; /* Digi00x-specific message */
47+};
48+
4349 union snd_firewire_event {
4450 struct snd_firewire_event_common common;
4551 struct snd_firewire_event_lock_status lock_status;
4652 struct snd_firewire_event_dice_notification dice_notification;
4753 struct snd_firewire_event_efw_response efw_response;
54+ struct snd_firewire_event_digi00x_message digi00x_message;
4855 };
4956
5057
@@ -56,6 +63,8 @@ union snd_firewire_event { · 5 unmodified lines
5663 #define SNDRV_FIREWIRE_TYPE_FIREWORKS 2
5764 #define SNDRV_FIREWIRE_TYPE_BEBOB 3
5865 #define SNDRV_FIREWIRE_TYPE_OXFW 4
66+#define SNDRV_FIREWIRE_TYPE_DIGI00X 5
67+#define SNDRV_FIREWIRE_TYPE_TASCAM 6
5968 /* RME, MOTU, ... */
6069
6170 struct snd_firewire_get_info {
include/uapi/sound/hdspm.h+18−22
@@ -20,11 +20,7 @@ · 19 unmodified lines
2020 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
2121 */
2222
23−#ifdef __KERNEL__
2423 #include <linux/types.h>
25−#else
26−#include <stdint.h>
27−#endif
2824
2925 /* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */
3026 #define HDSPM_MAX_CHANNELS 64
@@ -46,15 +42,15 @@ enum hdspm_speed { · 15 unmodified lines
4642 /* -------------------- IOCTL Peak/RMS Meters -------------------- */
4743
4844 struct hdspm_peak_rms {
49− uint32_t input_peaks[64];
50− uint32_t playback_peaks[64];
51− uint32_t output_peaks[64];
45+ __u32 input_peaks[64];
46+ __u32 playback_peaks[64];
47+ __u32 output_peaks[64];
5248
53− uint64_t input_rms[64];
54− uint64_t playback_rms[64];
55− uint64_t output_rms[64];
49+ __u64 input_rms[64];
50+ __u64 playback_rms[64];
51+ __u64 output_rms[64];
5652
57− uint8_t speed; /* enum {ss, ds, qs} */
53+ __u8 speed; /* enum {ss, ds, qs} */
5854 int status2;
5955 };
6056
@@ -155,21 +151,21 @@ enum hdspm_syncsource { · 94 unmodified lines
155151 };
156152
157153 struct hdspm_status {
158− uint8_t card_type; /* enum hdspm_io_type */
154+ __u8 card_type; /* enum hdspm_io_type */
159155 enum hdspm_syncsource autosync_source;
160156
161− uint64_t card_clock;
162− uint32_t master_period;
157+ __u64 card_clock;
158+ __u32 master_period;
163159
164160 union {
165161 struct {
166− uint8_t sync_wc; /* enum hdspm_sync */
167− uint8_t sync_madi; /* enum hdspm_sync */
168− uint8_t sync_tco; /* enum hdspm_sync */
169− uint8_t sync_in; /* enum hdspm_sync */
170− uint8_t madi_input; /* enum hdspm_madi_input */
171− uint8_t channel_format; /* enum hdspm_madi_channel_format */
172− uint8_t frame_format; /* enum hdspm_madi_frame_format */
162+ __u8 sync_wc; /* enum hdspm_sync */
163+ __u8 sync_madi; /* enum hdspm_sync */
164+ __u8 sync_tco; /* enum hdspm_sync */
165+ __u8 sync_in; /* enum hdspm_sync */
166+ __u8 madi_input; /* enum hdspm_madi_input */
167+ __u8 channel_format; /* enum hdspm_madi_channel_format */
168+ __u8 frame_format; /* enum hdspm_madi_frame_format */
173169 } madi;
174170 } card_specific;
175171 };
@@ -184,7 +180,7 @@ struct hdspm_status { · 8 unmodified lines
184180 #define HDSPM_ADDON_TCO 1
185181
186182 struct hdspm_version {
187− uint8_t card_type; /* enum hdspm_io_type */
183+ __u8 card_type; /* enum hdspm_io_type */
188184 char cardname[20];
189185 unsigned int serial;
190186 unsigned short firmware_rev;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t