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
83#define SND_SOC_TPLG_NUM_TEXTS 1683#define SND_SOC_TPLG_NUM_TEXTS 16
84 84
85/* ABI version */85/* ABI version */
86#define SND_SOC_TPLG_ABI_VERSION 0x386#define SND_SOC_TPLG_ABI_VERSION 0x4
87 87
88/* Max size of TLV data */88/* Max size of TLV data */
89#define SND_SOC_TPLG_TLV_SIZE 3289#define SND_SOC_TPLG_TLV_SIZE 32
@@ -103,7 +103,8 @@ · 13 unmodified lines
103#define SND_SOC_TPLG_TYPE_PCM 7103#define SND_SOC_TPLG_TYPE_PCM 7
104#define SND_SOC_TPLG_TYPE_MANIFEST 8104#define SND_SOC_TPLG_TYPE_MANIFEST 8
105#define SND_SOC_TPLG_TYPE_CODEC_LINK 9105#define SND_SOC_TPLG_TYPE_CODEC_LINK 9
106#define SND_SOC_TPLG_TYPE_PDATA 10106#define SND_SOC_TPLG_TYPE_BACKEND_LINK 10
107#define SND_SOC_TPLG_TYPE_PDATA 11
107#define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_PDATA108#define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_PDATA
108 109
109/* vendor block IDs - please add new vendor types to end */110/* vendor block IDs - please add new vendor types to end */
@@ -198,7 +199,7 @@ struct snd_soc_tplg_ctl_hdr { · 88 unmodified lines
198struct snd_soc_tplg_stream_caps {199struct snd_soc_tplg_stream_caps {
199 __le32 size; /* in bytes of this structure */200 __le32 size; /* in bytes of this structure */
200 char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];201 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_* */
202 __le32 rates; /* supported rates SNDRV_PCM_RATE_* */203 __le32 rates; /* supported rates SNDRV_PCM_RATE_* */
203 __le32 rate_min; /* min rate */204 __le32 rate_min; /* min rate */
204 __le32 rate_max; /* max rate */205 __le32 rate_max; /* max rate */
@@ -217,23 +218,12 @@ struct snd_soc_tplg_stream_caps { · 12 unmodified lines
217 */218 */
218struct snd_soc_tplg_stream {219struct snd_soc_tplg_stream {
219 __le32 size; /* in bytes of this structure */220 __le32 size; /* in bytes of this structure */
221 char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* Name of the stream */
220 __le64 format; /* SNDRV_PCM_FMTBIT_* */222 __le64 format; /* SNDRV_PCM_FMTBIT_* */
221 __le32 rate; /* SNDRV_PCM_RATE_* */223 __le32 rate; /* SNDRV_PCM_RATE_* */
222 __le32 period_bytes; /* size of period in bytes */224 __le32 period_bytes; /* size of period in bytes */
223 __le32 buffer_bytes; /* size of buffer in bytes */225 __le32 buffer_bytes; /* size of buffer in bytes */
224 __le32 channels; /* channels */226 __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 */
232struct 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;
237} __attribute__((packed));227} __attribute__((packed));
238 228
239/*229/*
@@ -366,11 +356,11 @@ struct snd_soc_tplg_dapm_widget { · 126 unmodified lines
366 __le32 shift; /* bits to shift */356 __le32 shift; /* bits to shift */
367 __le32 mask; /* non-shifted mask */357 __le32 mask; /* non-shifted mask */
368 __le32 subseq; /* sort within widget type */358 __le32 subseq; /* sort within widget type */
369 __u32 invert; /* invert the power bit */359 __le32 invert; /* invert the power bit */
370 __u32 ignore_suspend; /* kept enabled over suspend */360 __le32 ignore_suspend; /* kept enabled over suspend */
371 __u16 event_flags;361 __le16 event_flags;
372 __u16 event_type;362 __le16 event_type;
373 __u16 num_kcontrols;363 __le32 num_kcontrols;
374 struct snd_soc_tplg_private priv;364 struct snd_soc_tplg_private priv;
375 /*365 /*
376 * kcontrols that relate to this widget366 * kcontrols that relate to this widget
@@ -378,30 +368,46 @@ struct snd_soc_tplg_dapm_widget { · 1 unmodified line
378 */368 */
379} __attribute__((packed));369} __attribute__((packed));
380 370
381struct 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));
386 371
387/*372/*
388 * Describes SW/FW specific features of PCM or DAI link.373 * Describes SW/FW specific features of PCM (FE DAI & DAI link).
389 *374 *
390 * File block representation for PCM/DAI-Link :-375 * File block representation for PCM :-
391 * +-----------------------------------+-----+376 * +-----------------------------------+-----+
392 * | struct snd_soc_tplg_hdr | 1 |377 * | struct snd_soc_tplg_hdr | 1 |
393 * +-----------------------------------+-----+378 * +-----------------------------------+-----+
394 * | struct snd_soc_tplg_dapm_pcm_dai | N |379 * | struct snd_soc_tplg_pcm | N |
395 * +-----------------------------------+-----+380 * +-----------------------------------+-----+
396 */381 */
397struct snd_soc_tplg_pcm_dai {382struct snd_soc_tplg_pcm {
398 __le32 size; /* in bytes of this structure */383 __le32 size; /* in bytes of this structure */
399 char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];384 char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
400 __le32 id; /* unique ID - used to match */385 char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
401 __le32 playback; /* supports playback mode */386 __le32 pcm_id; /* unique ID - used to match */
402 __le32 capture; /* supports capture mode */387 __le32 dai_id; /* unique ID - used to match */
403 __le32 compress; /* 1 = compressed; 0 = PCM */388 __le32 playback; /* supports playback mode */
404 struct snd_soc_tplg_pcm_cfg_caps capconf[2]; /* capabilities and configs */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 */
405} __attribute__((packed));394} __attribute__((packed));
406 395
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 */
407struct 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));
407#endif413#endif
include/uapi/sound/asound.h+3−1
@@ -100,9 +100,11 @@ enum { · 99 unmodified lines
100 SNDRV_HWDEP_IFACE_FW_FIREWORKS, /* Echo Audio Fireworks based device */100 SNDRV_HWDEP_IFACE_FW_FIREWORKS, /* Echo Audio Fireworks based device */
101 SNDRV_HWDEP_IFACE_FW_BEBOB, /* BridgeCo BeBoB based device */101 SNDRV_HWDEP_IFACE_FW_BEBOB, /* BridgeCo BeBoB based device */
102 SNDRV_HWDEP_IFACE_FW_OXFW, /* Oxford OXFW970/971 based device */102 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 */
103 105
104 /* Don't forget to change the following: */106 /* Don't forget to change the following: */
105 SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_FW_OXFW107 SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_FW_TASCAM
106};108};
107 109
108struct snd_hwdep_info {110struct snd_hwdep_info {
include/uapi/sound/emu10k1.h+11−3
@@ -34,6 +34,14 @@ · 33 unmodified lines
34 34
35#define EMU10K1_FX8010_PCM_COUNT 835#define EMU10K1_FX8010_PCM_COUNT 8
36 36
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
37/* instruction set */45/* instruction set */
38#define iMAC0 0x00 /* R = A + (X * Y >> 31) ; saturation */46#define iMAC0 0x00 /* R = A + (X * Y >> 31) ; saturation */
39#define iMAC1 0x01 /* R = A + (-X * Y >> 31) ; saturation */47#define iMAC1 0x01 /* R = A + (-X * Y >> 31) ; saturation */
@@ -300,7 +308,7 @@ struct snd_emu10k1_fx8010_control_old_gpr { · 260 unmodified lines
300struct snd_emu10k1_fx8010_code {308struct snd_emu10k1_fx8010_code {
301 char name[128];309 char name[128];
302 310
303 DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */311 __EMU10K1_DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
304 __u32 __user *gpr_map; /* initializers */312 __u32 __user *gpr_map; /* initializers */
305 313
306 unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */314 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
313 unsigned int gpr_list_control_total; /* total count of GPR controls */321 unsigned int gpr_list_control_total; /* total count of GPR controls */
314 struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */322 struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */
315 323
316 DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */324 __EMU10K1_DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
317 __u32 __user *tram_data_map; /* data initializers */325 __u32 __user *tram_data_map; /* data initializers */
318 __u32 __user *tram_addr_map; /* map initializers */326 __u32 __user *tram_addr_map; /* map initializers */
319 327
320 DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */328 __EMU10K1_DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
321 __u32 __user *code; /* one instruction - 64 bits */329 __u32 __user *code; /* one instruction - 64 bits */
322};330};
323 331
include/uapi/sound/firewire.h+9−0
@@ -9,6 +9,7 @@ · 8 unmodified lines
9#define SNDRV_FIREWIRE_EVENT_LOCK_STATUS 0x000010cc9#define SNDRV_FIREWIRE_EVENT_LOCK_STATUS 0x000010cc
10#define SNDRV_FIREWIRE_EVENT_DICE_NOTIFICATION 0xd1ce004e10#define SNDRV_FIREWIRE_EVENT_DICE_NOTIFICATION 0xd1ce004e
11#define SNDRV_FIREWIRE_EVENT_EFW_RESPONSE 0x4e61747511#define SNDRV_FIREWIRE_EVENT_EFW_RESPONSE 0x4e617475
12#define SNDRV_FIREWIRE_EVENT_DIGI00X_MESSAGE 0x746e736c
12 13
13struct snd_firewire_event_common {14struct snd_firewire_event_common {
14 unsigned int type; /* SNDRV_FIREWIRE_EVENT_xxx */15 unsigned int type; /* SNDRV_FIREWIRE_EVENT_xxx */
@@ -40,11 +41,17 @@ struct snd_firewire_event_efw_response { · 25 unmodified lines
40 __be32 response[0]; /* some responses */41 __be32 response[0]; /* some responses */
41};42};
42 43
44struct snd_firewire_event_digi00x_message {
45 unsigned int type;
46 __u32 message; /* Digi00x-specific message */
47};
48
43union snd_firewire_event {49union snd_firewire_event {
44 struct snd_firewire_event_common common;50 struct snd_firewire_event_common common;
45 struct snd_firewire_event_lock_status lock_status;51 struct snd_firewire_event_lock_status lock_status;
46 struct snd_firewire_event_dice_notification dice_notification;52 struct snd_firewire_event_dice_notification dice_notification;
47 struct snd_firewire_event_efw_response efw_response;53 struct snd_firewire_event_efw_response efw_response;
54 struct snd_firewire_event_digi00x_message digi00x_message;
48};55};
49 56
50 57
@@ -56,6 +63,8 @@ union snd_firewire_event { · 5 unmodified lines
56#define SNDRV_FIREWIRE_TYPE_FIREWORKS 263#define SNDRV_FIREWIRE_TYPE_FIREWORKS 2
57#define SNDRV_FIREWIRE_TYPE_BEBOB 364#define SNDRV_FIREWIRE_TYPE_BEBOB 3
58#define SNDRV_FIREWIRE_TYPE_OXFW 465#define SNDRV_FIREWIRE_TYPE_OXFW 4
66#define SNDRV_FIREWIRE_TYPE_DIGI00X 5
67#define SNDRV_FIREWIRE_TYPE_TASCAM 6
59/* RME, MOTU, ... */68/* RME, MOTU, ... */
60 69
61struct snd_firewire_get_info {70struct snd_firewire_get_info {
include/uapi/sound/hdspm.h+18−22
@@ -20,11 +20,7 @@ · 19 unmodified lines
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */21 */
22 22
23#ifdef __KERNEL__
24#include <linux/types.h>23#include <linux/types.h>
25#else
26#include <stdint.h>
27#endif
28 24
29/* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */25/* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */
30#define HDSPM_MAX_CHANNELS 6426#define HDSPM_MAX_CHANNELS 64
@@ -46,15 +42,15 @@ enum hdspm_speed { · 15 unmodified lines
46/* -------------------- IOCTL Peak/RMS Meters -------------------- */42/* -------------------- IOCTL Peak/RMS Meters -------------------- */
47 43
48struct hdspm_peak_rms {44struct hdspm_peak_rms {
49 uint32_t input_peaks[64];45 __u32 input_peaks[64];
50 uint32_t playback_peaks[64];46 __u32 playback_peaks[64];
51 uint32_t output_peaks[64];47 __u32 output_peaks[64];
52 48
53 uint64_t input_rms[64];49 __u64 input_rms[64];
54 uint64_t playback_rms[64];50 __u64 playback_rms[64];
55 uint64_t output_rms[64];51 __u64 output_rms[64];
56 52
57 uint8_t speed; /* enum {ss, ds, qs} */53 __u8 speed; /* enum {ss, ds, qs} */
58 int status2;54 int status2;
59};55};
60 56
@@ -155,21 +151,21 @@ enum hdspm_syncsource { · 94 unmodified lines
155};151};
156 152
157struct hdspm_status {153struct hdspm_status {
158 uint8_t card_type; /* enum hdspm_io_type */154 __u8 card_type; /* enum hdspm_io_type */
159 enum hdspm_syncsource autosync_source;155 enum hdspm_syncsource autosync_source;
160 156
161 uint64_t card_clock;157 __u64 card_clock;
162 uint32_t master_period;158 __u32 master_period;
163 159
164 union {160 union {
165 struct {161 struct {
166 uint8_t sync_wc; /* enum hdspm_sync */162 __u8 sync_wc; /* enum hdspm_sync */
167 uint8_t sync_madi; /* enum hdspm_sync */163 __u8 sync_madi; /* enum hdspm_sync */
168 uint8_t sync_tco; /* enum hdspm_sync */164 __u8 sync_tco; /* enum hdspm_sync */
169 uint8_t sync_in; /* enum hdspm_sync */165 __u8 sync_in; /* enum hdspm_sync */
170 uint8_t madi_input; /* enum hdspm_madi_input */166 __u8 madi_input; /* enum hdspm_madi_input */
171 uint8_t channel_format; /* enum hdspm_madi_channel_format */167 __u8 channel_format; /* enum hdspm_madi_channel_format */
172 uint8_t frame_format; /* enum hdspm_madi_frame_format */168 __u8 frame_format; /* enum hdspm_madi_frame_format */
173 } madi;169 } madi;
174 } card_specific;170 } card_specific;
175};171};
@@ -184,7 +180,7 @@ struct hdspm_status { · 8 unmodified lines
184#define HDSPM_ADDON_TCO 1180#define HDSPM_ADDON_TCO 1
185 181
186struct hdspm_version {182struct hdspm_version {
187 uint8_t card_type; /* enum hdspm_io_type */183 __u8 card_type; /* enum hdspm_io_type */
188 char cardname[20];184 char cardname[20];
189 unsigned int serial;185 unsigned int serial;
190 unsigned short firmware_rev;186 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