diff options
author | Takashi Iwai <tiwai@suse.de> | 2016-11-10 13:10:35 +0300 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2016-11-10 20:09:31 +0300 |
commit | df3a57105c04a7bfe0874316a9e6ec968c35a6f5 (patch) | |
tree | 0b3d0bafeef9e415ac60359672e4bd4fd20c5fd8 /Documentation/sound/designs | |
parent | 20a1d0f44d9447a68c387a2f561db4720302fb7c (diff) | |
download | linux-df3a57105c04a7bfe0874316a9e6ec968c35a6f5.tar.xz |
ALSA: doc: ReSTize Jack-Controls.txt
A simple conversion from a plain text file.
Put to designs subdirectory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'Documentation/sound/designs')
-rw-r--r-- | Documentation/sound/designs/index.rst | 1 | ||||
-rw-r--r-- | Documentation/sound/designs/jack-controls.rst | 48 |
2 files changed, 49 insertions, 0 deletions
diff --git a/Documentation/sound/designs/index.rst b/Documentation/sound/designs/index.rst index 798b1a44bbbd..04dcdae3e4f2 100644 --- a/Documentation/sound/designs/index.rst +++ b/Documentation/sound/designs/index.rst @@ -8,6 +8,7 @@ Designs and Implementations channel-mapping-api compress-offload timestamping + jack-controls procfile powersave oss-emulation diff --git a/Documentation/sound/designs/jack-controls.rst b/Documentation/sound/designs/jack-controls.rst new file mode 100644 index 000000000000..ae25b1531bb0 --- /dev/null +++ b/Documentation/sound/designs/jack-controls.rst @@ -0,0 +1,48 @@ +================== +ALSA Jack Controls +================== + +Why we need Jack kcontrols +========================== + +ALSA uses kcontrols to export audio controls(switch, volume, Mux, ...) +to user space. This means userspace applications like pulseaudio can +switch off headphones and switch on speakers when no headphones are +pluged in. + +The old ALSA jack code only created input devices for each registered +jack. These jack input devices are not readable by userspace devices +that run as non root. + +The new jack code creates embedded jack kcontrols for each jack that +can be read by any process. + +This can be combined with UCM to allow userspace to route audio more +intelligently based on jack insertion or removal events. + +Jack Kcontrol Internals +======================= + +Each jack will have a kcontrol list, so that we can create a kcontrol +and attach it to the jack, at jack creation stage. We can also add a +kcontrol to an existing jack, at anytime when required. + +Those kcontrols will be freed automatically when the Jack is freed. + +How to use jack kcontrols +========================= + +In order to keep compatibility, snd_jack_new() has been modified by +adding two params: + +initial_kctl + if true, create a kcontrol and add it to the jack list. +phantom_jack + Don't create a input device for phantom jacks. + +HDA jacks can set phantom_jack to true in order to create a phantom +jack and set initial_kctl to true to create an initial kcontrol with +the correct id. + +ASoC jacks should set initial_kctl as false. The pin name will be +assigned as the jack kcontrol name. |