ALSA: hda - Don't skip amp init for activated paths
authorTakashi Iwai <tiwai@suse.de>
Thu, 3 Jan 2013 15:30:04 +0000 (16:30 +0100)
committerTakashi Iwai <tiwai@suse.de>
Sat, 12 Jan 2013 07:43:26 +0000 (08:43 +0100)
activate_amp() in the generic parser checks whether the given NID is
included in any active paths and skips it if found.  This was a
workaround for avoiding disabling the widgets in the active paths when
one path is disabled, thus it shouldn't be applied to the case for
path activation.  Due to this wrong check, some analog loopback paths
haven't been initialized correctly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_generic.c

index 6ff4a0db74e9a0f496f15b06973c9652874a3782..9228175f0806d6f366359bf30e808f95ca737263 100644 (file)
@@ -463,7 +463,7 @@ static void activate_amp(struct hda_codec *codec, hda_nid_t nid, int dir,
 {
        int val;
        if (is_ctl_associated(codec, nid, dir, idx) ||
-           is_active_nid(codec, nid, dir, idx))
+           (!enable && is_active_nid(codec, nid, dir, idx)))
                return;
        val = get_amp_val_to_activate(codec, nid, dir, enable);
        snd_hda_codec_amp_stereo(codec, nid, dir, idx, 0xff, val);
This page took 0.027748 seconds and 5 git commands to generate.