Skip to content

Commit bae41e4

Browse files
committed
Merge tag 'sound-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai: "This became a fairly large pull request. In addition to the usual driver updates / fixes, there have been a high amount of cleanups in ASoC area, as well as control API helpers and kernel documentations fixes touching through the whole tree. In the driver side, the biggest changes are the support for new Intel SoC found on new x86 machines, and the updates of FireWire dice and oxfw drivers. Some remarkable items are below: ALSA core: - PCM mmap code cleanup, removal of arch-dependent codes - PCM xrun injection support - PCM hwptr tracepoint support - Refactoring of snd_pcm_action(), simplification of PCM locking - Robustified sequecner auto-load functionality - New control API helpers and lots of cleanups along with them - Lots of kerneldoc fixes and cleanups USB-audio: - The mixer resume code was largely rewritten, and the devices with quirks are resumed properly. - New hardware support: Focusrite Scarlett, Digidesign Mbox1, Denon/Marantz DACs, Zoom R16/24 FireWire: - DICE driver updates with better duplex and sync support, including MIDI support - New OXFW driver for Oxford Semiconductor FW970/971 chipset, including the previous LaCie Speakers device. Fullduplex and MIDI support included as well as DICE driver. HD-audio: - Refactoring the driver-caps quirk handling in snd-hda-intel - More consistent control names representing the topology better - Fixups: HP mute LED with ALC268 codec, Ideapad S210 built-in mic fix, ASUS Z99He laptop EAPD ASoC: - Conversion of AC'97 drivers to use regmap, bringing us closer to the removal of the ASoC level I/O code - Clean up a lot of old drivers that were open coding things that have subsequently been implemented in the core - Some DAPM performance improvements - Removal of the now seldom used CODEC mutex - Lots of updates for the newer Intel SoC support, including support for the DSP and some Cherrytrail and Braswell machine drivers - Support for Samsung boards using rt5631 as the CODEC - Removal of the obsolete AFEB9260 machine driver - Driver support for the TI TS3A227E headset driver used in some Chrombeooks Others: - ASIHPI driver update and cleanups - Lots of dev_*() printk conversions - Lots of trivial cleanups for the codes spotted by Coccinelle" * tag 'sound-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (594 commits) ALSA: pcxhr: NULL dereference on probe failure ALSA: lola: NULL dereference on probe failure ALSA: hda - Add "eapd" model string for AD1986A codec ALSA: hda - Add EAPD fixup for ASUS Z99He laptop ALSA: oxfw: Add hwdep interface ALSA: oxfw: Add support for capture/playback MIDI messages ALSA: oxfw: add support for capturing PCM samples ALSA: oxfw: Add support AMDTP in-stream ALSA: oxfw: Add support for Behringer/Mackie devices ALSA: oxfw: Change the way to start stream ALSA: oxfw: Add proc interface for debugging purpose ALSA: oxfw: Change the way to make PCM rules/constraints ALSA: oxfw: Add support for AV/C stream format command to get/set supported stream formation ALSA: oxfw: Change the way to name card ALSA: dice: Add support for MIDI capture/playback ALSA: dice: Add support for capturing PCM samples ALSA: dice: Support for non SYT-Match sampling clock source mode ALSA: dice: Add support for duplex streams with synchronization ALSA: dice: Change the way to start stream ALSA: jack: Add dummy snd_jack_set_key() definition ...
2 parents 7ef58b3 + 6e1d7a5 commit bae41e4

File tree

451 files changed

+27287
-11366
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

451 files changed

+27287
-11366
lines changed

Documentation/DocBook/alsa-driver-api.tmpl

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,18 @@
5757
!Esound/core/pcm.c
5858
!Esound/core/pcm_lib.c
5959
!Esound/core/pcm_native.c
60+
!Iinclude/sound/pcm.h
6061
</sect1>
6162
<sect1><title>PCM Format Helpers</title>
6263
!Esound/core/pcm_misc.c
6364
</sect1>
6465
<sect1><title>PCM Memory Management</title>
6566
!Esound/core/pcm_memory.c
6667
</sect1>
68+
<sect1><title>PCM DMA Engine API</title>
69+
!Esound/core/pcm_dmaengine.c
70+
!Iinclude/sound/dmaengine_pcm.h
71+
</sect1>
6772
</chapter>
6873
<chapter><title>Control/Mixer API</title>
6974
<sect1><title>General Control Interface</title>
@@ -91,12 +96,38 @@
9196
!Esound/core/info.c
9297
</sect1>
9398
</chapter>
99+
<chapter><title>Compress Offload</title>
100+
<sect1><title>Compress Offload API</title>
101+
!Esound/core/compress_offload.c
102+
!Iinclude/uapi/sound/compress_offload.h
103+
!Iinclude/uapi/sound/compress_params.h
104+
!Iinclude/sound/compress_driver.h
105+
</sect1>
106+
</chapter>
107+
<chapter><title>ASoC</title>
108+
<sect1><title>ASoC Core API</title>
109+
!Iinclude/sound/soc.h
110+
!Esound/soc/soc-core.c
111+
!Esound/soc/soc-cache.c
112+
!Esound/soc/soc-devres.c
113+
!Esound/soc/soc-io.c
114+
!Esound/soc/soc-pcm.c
115+
</sect1>
116+
<sect1><title>ASoC DAPM API</title>
117+
!Esound/soc/soc-dapm.c
118+
</sect1>
119+
<sect1><title>ASoC DMA Engine API</title>
120+
!Esound/soc/soc-generic-dmaengine-pcm.c
121+
</sect1>
122+
</chapter>
94123
<chapter><title>Miscellaneous Functions</title>
95124
<sect1><title>Hardware-Dependent Devices API</title>
96125
!Esound/core/hwdep.c
97126
</sect1>
98127
<sect1><title>Jack Abstraction Layer API</title>
128+
!Iinclude/sound/jack.h
99129
!Esound/core/jack.c
130+
!Esound/soc/soc-jack.c
100131
</sect1>
101132
<sect1><title>ISA DMA Helpers</title>
102133
!Esound/core/isadma.c

Documentation/DocBook/writing-an-alsa-driver.tmpl

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3657,6 +3657,29 @@ struct _snd_pcm_runtime {
36573657
</informalexample>
36583658
</para>
36593659

3660+
<para>
3661+
The above callback can be simplified with a helper function,
3662+
<function>snd_ctl_enum_info</function>. The final code
3663+
looks like below.
3664+
(You can pass ARRAY_SIZE(texts) instead of 4 in the third
3665+
argument; it's a matter of taste.)
3666+
3667+
<informalexample>
3668+
<programlisting>
3669+
<![CDATA[
3670+
static int snd_myctl_enum_info(struct snd_kcontrol *kcontrol,
3671+
struct snd_ctl_elem_info *uinfo)
3672+
{
3673+
static char *texts[4] = {
3674+
"First", "Second", "Third", "Fourth"
3675+
};
3676+
return snd_ctl_enum_info(uinfo, 1, 4, texts);
3677+
}
3678+
]]>
3679+
</programlisting>
3680+
</informalexample>
3681+
</para>
3682+
36603683
<para>
36613684
Some common info callbacks are available for your convenience:
36623685
<function>snd_ctl_boolean_mono_info()</function> and
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
Audio Binding for Arndale boards
2+
3+
Required properties:
4+
- compatible : Can be the following,
5+
"samsung,arndale-rt5631"
6+
7+
- samsung,audio-cpu: The phandle of the Samsung I2S controller
8+
- samsung,audio-codec: The phandle of the audio codec
9+
10+
Optional:
11+
- samsung,model: The name of the sound-card
12+
13+
Arndale Boards has many audio daughter cards, one of them is
14+
rt5631/alc5631. Below example shows audio bindings for rt5631/
15+
alc5631 based codec.
16+
17+
Example:
18+
19+
sound {
20+
compatible = "samsung,arndale-rt5631";
21+
22+
samsung,audio-cpu = <&i2s0>
23+
samsung,audio-codec = <&rt5631>;
24+
};

Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Optional properties:
3232
- rx-num-evt : FIFO levels.
3333
- sram-size-playback : size of sram to be allocated during playback
3434
- sram-size-capture : size of sram to be allocated during capture
35-
- interrupts : Interrupt numbers for McASP, currently not used by the driver
35+
- interrupts : Interrupt numbers for McASP
3636
- interrupt-names : Known interrupt names are "tx" and "rx"
3737
- pinctrl-0: Should specify pin control group used for this controller.
3838
- pinctrl-names: Should contain only one value - "default", for more details

Documentation/devicetree/bindings/sound/eukrea-tlv320.txt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
Audio complex for Eukrea boards with tlv320aic23 codec.
22

33
Required properties:
4-
- compatible : "eukrea,asoc-tlv320"
5-
- eukrea,model : The user-visible name of this sound complex.
6-
- ssi-controller : The phandle of the SSI controller.
7-
- fsl,mux-int-port : The internal port of the i.MX audio muxer (AUDMUX).
8-
- fsl,mux-ext-port : The external port of the i.MX audio muxer.
4+
5+
- compatible : "eukrea,asoc-tlv320"
6+
7+
- eukrea,model : The user-visible name of this sound complex.
8+
9+
- ssi-controller : The phandle of the SSI controller.
10+
11+
- fsl,mux-int-port : The internal port of the i.MX audio muxer (AUDMUX).
12+
13+
- fsl,mux-ext-port : The external port of the i.MX audio muxer.
914

1015
Note: The AUDMUX port numbering should start at 1, which is consistent with
1116
hardware manual.

Documentation/devicetree/bindings/sound/fsl,esai.txt

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,37 +7,39 @@ other DSPs. It has up to six transmitters and four receivers.
77

88
Required properties:
99

10-
- compatible : Compatible list, must contain "fsl,imx35-esai" or
11-
"fsl,vf610-esai"
10+
- compatible : Compatible list, must contain "fsl,imx35-esai" or
11+
"fsl,vf610-esai"
1212

13-
- reg : Offset and length of the register set for the device.
13+
- reg : Offset and length of the register set for the device.
1414

15-
- interrupts : Contains the spdif interrupt.
15+
- interrupts : Contains the spdif interrupt.
1616

17-
- dmas : Generic dma devicetree binding as described in
18-
Documentation/devicetree/bindings/dma/dma.txt.
17+
- dmas : Generic dma devicetree binding as described in
18+
Documentation/devicetree/bindings/dma/dma.txt.
1919

20-
- dma-names : Two dmas have to be defined, "tx" and "rx".
20+
- dma-names : Two dmas have to be defined, "tx" and "rx".
2121

22-
- clocks: Contains an entry for each entry in clock-names.
22+
- clocks : Contains an entry for each entry in clock-names.
2323

24-
- clock-names : Includes the following entries:
25-
"core" The core clock used to access registers
26-
"extal" The esai baud clock for esai controller used to derive
27-
HCK, SCK and FS.
28-
"fsys" The system clock derived from ahb clock used to derive
29-
HCK, SCK and FS.
24+
- clock-names : Includes the following entries:
25+
"core" The core clock used to access registers
26+
"extal" The esai baud clock for esai controller used to
27+
derive HCK, SCK and FS.
28+
"fsys" The system clock derived from ahb clock used to
29+
derive HCK, SCK and FS.
3030

31-
- fsl,fifo-depth: The number of elements in the transmit and receive FIFOs.
32-
This number is the maximum allowed value for TFCR[TFWM] or RFCR[RFWM].
31+
- fsl,fifo-depth : The number of elements in the transmit and receive
32+
FIFOs. This number is the maximum allowed value for
33+
TFCR[TFWM] or RFCR[RFWM].
3334

3435
- fsl,esai-synchronous: This is a boolean property. If present, indicating
35-
that ESAI would work in the synchronous mode, which means all the settings
36-
for Receiving would be duplicated from Transmition related registers.
36+
that ESAI would work in the synchronous mode, which
37+
means all the settings for Receiving would be
38+
duplicated from Transmition related registers.
3739

38-
- big-endian : If this property is absent, the native endian mode will
39-
be in use as default, or the big endian mode will be in use for all the
40-
device registers.
40+
- big-endian : If this property is absent, the native endian mode
41+
will be in use as default, or the big endian mode
42+
will be in use for all the device registers.
4143

4244
Example:
4345

Documentation/devicetree/bindings/sound/fsl,spdif.txt

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,31 @@ a fibre cable.
66

77
Required properties:
88

9-
- compatible : Compatible list, must contain "fsl,imx35-spdif".
9+
- compatible : Compatible list, must contain "fsl,imx35-spdif".
1010

11-
- reg : Offset and length of the register set for the device.
11+
- reg : Offset and length of the register set for the device.
1212

13-
- interrupts : Contains the spdif interrupt.
13+
- interrupts : Contains the spdif interrupt.
1414

15-
- dmas : Generic dma devicetree binding as described in
16-
Documentation/devicetree/bindings/dma/dma.txt.
15+
- dmas : Generic dma devicetree binding as described in
16+
Documentation/devicetree/bindings/dma/dma.txt.
1717

18-
- dma-names : Two dmas have to be defined, "tx" and "rx".
18+
- dma-names : Two dmas have to be defined, "tx" and "rx".
1919

20-
- clocks : Contains an entry for each entry in clock-names.
20+
- clocks : Contains an entry for each entry in clock-names.
2121

22-
- clock-names : Includes the following entries:
23-
"core" The core clock of spdif controller
24-
"rxtx<0-7>" Clock source list for tx and rx clock.
25-
This clock list should be identical to
26-
the source list connecting to the spdif
27-
clock mux in "SPDIF Transceiver Clock
28-
Diagram" of SoC reference manual. It
29-
can also be referred to TxClk_Source
30-
bit of register SPDIF_STC.
22+
- clock-names : Includes the following entries:
23+
"core" The core clock of spdif controller.
24+
"rxtx<0-7>" Clock source list for tx and rx clock.
25+
This clock list should be identical to the source
26+
list connecting to the spdif clock mux in "SPDIF
27+
Transceiver Clock Diagram" of SoC reference manual.
28+
It can also be referred to TxClk_Source bit of
29+
register SPDIF_STC.
3130

32-
- big-endian : If this property is absent, the native endian mode will
33-
be in use as default, or the big endian mode will be in use for all the
34-
device registers.
31+
- big-endian : If this property is absent, the native endian mode
32+
will be in use as default, or the big endian mode
33+
will be in use for all the device registers.
3534

3635
Example:
3736

Documentation/devicetree/bindings/sound/fsl-sai.txt

Lines changed: 41 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,48 @@ which provides a synchronous audio interface that supports fullduplex
55
serial interfaces with frame synchronization such as I2S, AC97, TDM, and
66
codec/DSP interfaces.
77

8-
98
Required properties:
10-
- compatible: Compatible list, contains "fsl,vf610-sai" or "fsl,imx6sx-sai".
11-
- reg: Offset and length of the register set for the device.
12-
- clocks: Must contain an entry for each entry in clock-names.
13-
- clock-names : Must include the "bus" for register access and "mclk1" "mclk2"
14-
"mclk3" for bit clock and frame clock providing.
15-
- dmas : Generic dma devicetree binding as described in
16-
Documentation/devicetree/bindings/dma/dma.txt.
17-
- dma-names : Two dmas have to be defined, "tx" and "rx".
18-
- pinctrl-names: Must contain a "default" entry.
19-
- pinctrl-NNN: One property must exist for each entry in pinctrl-names.
20-
See ../pinctrl/pinctrl-bindings.txt for details of the property values.
21-
- big-endian: Boolean property, required if all the FTM_PWM registers
22-
are big-endian rather than little-endian.
23-
- lsb-first: Configures whether the LSB or the MSB is transmitted first for
24-
the fifo data. If this property is absent, the MSB is transmitted first as
25-
default, or the LSB is transmitted first.
26-
- fsl,sai-synchronous-rx: This is a boolean property. If present, indicating
27-
that SAI will work in the synchronous mode (sync Tx with Rx) which means
28-
both the transimitter and receiver will send and receive data by following
29-
receiver's bit clocks and frame sync clocks.
30-
- fsl,sai-asynchronous: This is a boolean property. If present, indicating
31-
that SAI will work in the asynchronous mode, which means both transimitter
32-
and receiver will send and receive data by following their own bit clocks
33-
and frame sync clocks separately.
9+
10+
- compatible : Compatible list, contains "fsl,vf610-sai" or
11+
"fsl,imx6sx-sai".
12+
13+
- reg : Offset and length of the register set for the device.
14+
15+
- clocks : Must contain an entry for each entry in clock-names.
16+
17+
- clock-names : Must include the "bus" for register access and
18+
"mclk1", "mclk2", "mclk3" for bit clock and frame
19+
clock providing.
20+
- dmas : Generic dma devicetree binding as described in
21+
Documentation/devicetree/bindings/dma/dma.txt.
22+
23+
- dma-names : Two dmas have to be defined, "tx" and "rx".
24+
25+
- pinctrl-names : Must contain a "default" entry.
26+
27+
- pinctrl-NNN : One property must exist for each entry in
28+
pinctrl-names. See ../pinctrl/pinctrl-bindings.txt
29+
for details of the property values.
30+
31+
- big-endian : Boolean property, required if all the FTM_PWM
32+
registers are big-endian rather than little-endian.
33+
34+
- lsb-first : Configures whether the LSB or the MSB is transmitted
35+
first for the fifo data. If this property is absent,
36+
the MSB is transmitted first as default, or the LSB
37+
is transmitted first.
38+
39+
- fsl,sai-synchronous-rx: This is a boolean property. If present, indicating
40+
that SAI will work in the synchronous mode (sync Tx
41+
with Rx) which means both the transimitter and the
42+
receiver will send and receive data by following
43+
receiver's bit clocks and frame sync clocks.
44+
45+
- fsl,sai-asynchronous: This is a boolean property. If present, indicating
46+
that SAI will work in the asynchronous mode, which
47+
means both transimitter and receiver will send and
48+
receive data by following their own bit clocks and
49+
frame sync clocks separately.
3450

3551
Note:
3652
- If both fsl,sai-asynchronous and fsl,sai-synchronous-rx are absent, the

Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,40 @@
11
Freescale i.MX audio complex with SGTL5000 codec
22

33
Required properties:
4-
- compatible : "fsl,imx-audio-sgtl5000"
5-
- model : The user-visible name of this sound complex
6-
- ssi-controller : The phandle of the i.MX SSI controller
7-
- audio-codec : The phandle of the SGTL5000 audio codec
8-
- audio-routing : A list of the connections between audio components.
9-
Each entry is a pair of strings, the first being the connection's sink,
10-
the second being the connection's source. Valid names could be power
11-
supplies, SGTL5000 pins, and the jacks on the board:
12-
13-
Power supplies:
14-
* Mic Bias
15-
16-
SGTL5000 pins:
17-
* MIC_IN
18-
* LINE_IN
19-
* HP_OUT
20-
* LINE_OUT
21-
22-
Board connectors:
23-
* Mic Jack
24-
* Line In Jack
25-
* Headphone Jack
26-
* Line Out Jack
27-
* Ext Spk
28-
29-
- mux-int-port : The internal port of the i.MX audio muxer (AUDMUX)
30-
- mux-ext-port : The external port of the i.MX audio muxer
4+
5+
- compatible : "fsl,imx-audio-sgtl5000"
6+
7+
- model : The user-visible name of this sound complex
8+
9+
- ssi-controller : The phandle of the i.MX SSI controller
10+
11+
- audio-codec : The phandle of the SGTL5000 audio codec
12+
13+
- audio-routing : A list of the connections between audio components.
14+
Each entry is a pair of strings, the first being the
15+
connection's sink, the second being the connection's
16+
source. Valid names could be power supplies, SGTL5000
17+
pins, and the jacks on the board:
18+
19+
Power supplies:
20+
* Mic Bias
21+
22+
SGTL5000 pins:
23+
* MIC_IN
24+
* LINE_IN
25+
* HP_OUT
26+
* LINE_OUT
27+
28+
Board connectors:
29+
* Mic Jack
30+
* Line In Jack
31+
* Headphone Jack
32+
* Line Out Jack
33+
* Ext Spk
34+
35+
- mux-int-port : The internal port of the i.MX audio muxer (AUDMUX)
36+
37+
- mux-ext-port : The external port of the i.MX audio muxer
3138

3239
Note: The AUDMUX port numbering should start at 1, which is consistent with
3340
hardware manual.

0 commit comments

Comments
 (0)