Commit 7dddf2ae authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda - Fix wrong arguments for path deactivation checks

The arguments to call is_active_nid() in activate_amp() were swapped,
and this resulted in the muted amp on some SPDIF output pins.

Also, the index to be passed to is_active_nid() must be idx_to_check.
Otherwise it checks the wrong connection in the case of implicit aamix
connection paths.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 5397145f
...@@ -569,7 +569,7 @@ static bool has_amp_out(struct hda_codec *codec, struct nid_path *path, int idx) ...@@ -569,7 +569,7 @@ static bool has_amp_out(struct hda_codec *codec, struct nid_path *path, int idx)
/* check whether the given (nid,dir,idx) is active */ /* check whether the given (nid,dir,idx) is active */
static bool is_active_nid(struct hda_codec *codec, hda_nid_t nid, static bool is_active_nid(struct hda_codec *codec, hda_nid_t nid,
unsigned int idx, unsigned int dir) unsigned int dir, unsigned int idx)
{ {
struct hda_gen_spec *spec = codec->spec; struct hda_gen_spec *spec = codec->spec;
int i, n; int i, n;
...@@ -642,7 +642,7 @@ static void activate_amp(struct hda_codec *codec, hda_nid_t nid, int dir, ...@@ -642,7 +642,7 @@ static void activate_amp(struct hda_codec *codec, hda_nid_t nid, int dir,
unsigned int caps; unsigned int caps;
unsigned int mask, val; unsigned int mask, val;
if (!enable && is_active_nid(codec, nid, dir, idx)) if (!enable && is_active_nid(codec, nid, dir, idx_to_check))
return; return;
caps = query_amp_caps(codec, nid, dir); caps = query_amp_caps(codec, nid, dir);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment