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>
{
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);