[alsa-devel] [PATCH 07/13] ALSA: hda - Fix wrong arguments for path deactivation checks

Takashi Iwai tiwai at suse.de
Thu Jan 24 18:37:56 CET 2013

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: Takashi Iwai <tiwai at suse.de>
 sound/pci/hda/hda_generic.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
index 921582d..31ffd66 100644
--- a/sound/pci/hda/hda_generic.c
+++ b/sound/pci/hda/hda_generic.c
@@ -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 */
 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;
 	int i, n;
@@ -642,7 +642,7 @@ static void activate_amp(struct hda_codec *codec, hda_nid_t nid, int dir,
 	unsigned int caps;
 	unsigned int mask, val;
-	if (!enable && is_active_nid(codec, nid, dir, idx))
+	if (!enable && is_active_nid(codec, nid, dir, idx_to_check))
 	caps = query_amp_caps(codec, nid, dir);

More information about the Alsa-devel mailing list