aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2015-08-24 04:45:27 -0400
committerTakashi Iwai <tiwai@suse.de>2015-08-25 01:59:01 -0400
commit9d2b48f7304aafaefbf0794a556ab4e307929d24 (patch)
treebffaab88a4322ed233d1cde0b56152bf995b8522
parentc7e69ae6b4ff49edf50180c0a32f3dd9d7967e31 (diff)
ALSA: hda - Check all inputs for is_active_nid_for_any()
The is_active_nid_for_any() function in the generic parser is supposed to check all connections from/to the given widget, but the current code checks only the first input connection (index = 0). This patch corrects the code to check all inputs by passing -1 to index argument. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102521 Cc: <stable@vger.kernel.org> [v4.1+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/hda_generic.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
index b077bb644434..368181d8b0ce 100644
--- a/sound/pci/hda/hda_generic.c
+++ b/sound/pci/hda/hda_generic.c
@@ -671,7 +671,8 @@ static bool is_active_nid(struct hda_codec *codec, hda_nid_t nid,
671 } 671 }
672 for (i = 0; i < path->depth; i++) { 672 for (i = 0; i < path->depth; i++) {
673 if (path->path[i] == nid) { 673 if (path->path[i] == nid) {
674 if (dir == HDA_OUTPUT || path->idx[i] == idx) 674 if (dir == HDA_OUTPUT || idx == -1 ||
675 path->idx[i] == idx)
675 return true; 676 return true;
676 break; 677 break;
677 } 678 }
@@ -682,7 +683,7 @@ static bool is_active_nid(struct hda_codec *codec, hda_nid_t nid,
682 683
683/* check whether the NID is referred by any active paths */ 684/* check whether the NID is referred by any active paths */
684#define is_active_nid_for_any(codec, nid) \ 685#define is_active_nid_for_any(codec, nid) \
685 is_active_nid(codec, nid, HDA_OUTPUT, 0) 686 is_active_nid(codec, nid, HDA_OUTPUT, -1)
686 687
687/* get the default amp value for the target state */ 688/* get the default amp value for the target state */
688static int get_amp_val_to_activate(struct hda_codec *codec, hda_nid_t nid, 689static int get_amp_val_to_activate(struct hda_codec *codec, hda_nid_t nid,