diff options
author | Takashi Iwai <tiwai@suse.de> | 2012-07-27 20:27:00 +0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-09-06 20:01:16 +0400 |
commit | 2d3391ec0ecca37efb6bc995906292f47522b471 (patch) | |
tree | 129e8bce7b18bb9de48d6bc0e63806d22b40ad99 /sound/core/pcm.c | |
parent | a8d372f171db9b90a64778fbcd9237c9bc256e06 (diff) | |
download | linux-2d3391ec0ecca37efb6bc995906292f47522b471.tar.xz |
ALSA: PCM: channel mapping API implementation
This patch implements the basic data types for the standard channel
mapping API handling.
- The definitions of the channel positions and the new TLV types are
added in sound/asound.h and sound/tlv.h, so that they can be
referred from user-space.
- Introduced a new helper function snd_pcm_add_chmap_ctls() to create
control elements representing the channel maps for each PCM
(sub)stream.
- Some standard pre-defined channel maps are provided for
convenience.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core/pcm.c')
-rw-r--r-- | sound/core/pcm.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/core/pcm.c b/sound/core/pcm.c index 1a3070b4e5b5..f2991940b271 100644 --- a/sound/core/pcm.c +++ b/sound/core/pcm.c @@ -1105,6 +1105,10 @@ static int snd_pcm_dev_disconnect(struct snd_device *device) break; } snd_unregister_device(devtype, pcm->card, pcm->device); + if (pcm->streams[cidx].chmap_kctl) { + snd_ctl_remove(pcm->card, pcm->streams[cidx].chmap_kctl); + pcm->streams[cidx].chmap_kctl = NULL; + } } unlock: mutex_unlock(®ister_mutex); |