diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-02-22 18:43:50 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-22 14:20:09 -0800 |
commit | 2f0855497738a56825ee6445574835b4fc1d77d5 (patch) | |
tree | 0c745f07383f08e3e4d03eb3dc1c59a3aa6d99bf | |
parent | 14c65f98bfea9324cf334793305dd262d0095850 (diff) | |
download | op-kernel-dev-2f0855497738a56825ee6445574835b4fc1d77d5.zip op-kernel-dev-2f0855497738a56825ee6445574835b4fc1d77d5.tar.gz |
[ALSA] hda-codec - Don't create vmaster if no slaves found
Don't create vmaster controls if no slaves are found in the given list.
This prevents the error due to an empty vmaster control.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | sound/pci/hda/hda_codec.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 5c6419e..37c4139 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -1055,6 +1055,12 @@ int snd_hda_add_vmaster(struct hda_codec *codec, char *name, const char **s; int err; + for (s = slaves; *s && !snd_hda_find_mixer_ctl(codec, *s); s++) + ; + if (!*s) { + snd_printdd("No slave found for %s\n", name); + return 0; + } kctl = snd_ctl_make_virtual_master(name, tlv); if (!kctl) return -ENOMEM; |