ALSA: hda - Create snd_hda_get_conn_index() helper function

Create snd_hda_get_conn_index() helper function for obtaining the
connection index of the widget.  Replaced the similar codes used in
several codec-drivers with this common helper.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index 997b705..76142c1 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -410,27 +410,8 @@
 	return 0;
 }
 
-/* return the index of the given widget nid as the source of mux;
- * return -1 if not found;
- * if num_conns is non-NULL, set the total number of connections
- */
-static int __get_connection_index(struct hda_codec *codec, hda_nid_t mux,
-				  hda_nid_t nid, int *num_conns)
-{
-	hda_nid_t conn[HDA_MAX_NUM_INPUTS];
-	int i, nums;
-
-	nums = snd_hda_get_connections(codec, mux, conn, ARRAY_SIZE(conn));
-	if (num_conns)
-		*num_conns = nums;
-	for (i = 0; i < nums; i++)
-		if (conn[i] == nid)
-			return i;
-	return -1;
-}
-
 #define get_connection_index(codec, mux, nid) \
-	__get_connection_index(codec, mux, nid, NULL)
+	snd_hda_get_conn_index(codec, mux, nid, 0)
 
 static bool check_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir,
 			   unsigned int mask)
@@ -2011,23 +1992,10 @@
 	spec->loopback.amplist = spec->loopback_list;
 }
 
-/* check whether the path from src to dst is reachable */
 static bool is_reachable_nid(struct hda_codec *codec, hda_nid_t src,
-			     hda_nid_t dst, int depth)
+			     hda_nid_t dst)
 {
-	hda_nid_t conn[8];
-	int i, nums;
-
-	nums = snd_hda_get_connections(codec, src, conn, ARRAY_SIZE(conn));
-	for (i = 0; i < nums; i++)
-		if (conn[i] == dst)
-			return true;
-	if (++depth > MAX_NID_PATH_DEPTH)
-		return false;
-	for (i = 0; i < nums; i++)
-		if (is_reachable_nid(codec, conn[i], dst, depth))
-			return true;
-	return false;
+	return snd_hda_get_conn_index(codec, src, dst, 1) >= 0;
 }
 
 /* add the input-route to the given pin */
@@ -2046,7 +2014,7 @@
 				continue;
 			spec->inputs[spec->num_inputs].mux_idx = idx;
 		} else {
-			if (!is_reachable_nid(codec, spec->adc_nids[c], pin, 0))
+			if (!is_reachable_nid(codec, spec->adc_nids[c], pin))
 				continue;
 		}
 		spec->inputs[spec->num_inputs].adc_idx = c;