[PATCH 2/2] ASoC: audio-graph-card2: Use helper function to simplify code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



for_each_child_of_node can help to iterate through the device_node,
and we don't need to use while loop. Besides, use of_get_child_count()
to get the num of child directly. No functional change with this
conversion.

Signed-off-by: Zhang Zekun <zhangzekun11@xxxxxxxxxx>
---
 sound/soc/generic/audio-graph-card2.c | 28 ++++++---------------------
 1 file changed, 6 insertions(+), 22 deletions(-)

diff --git a/sound/soc/generic/audio-graph-card2.c b/sound/soc/generic/audio-graph-card2.c
index 56f7f946882e..03f6eb1df84a 100644
--- a/sound/soc/generic/audio-graph-card2.c
+++ b/sound/soc/generic/audio-graph-card2.c
@@ -351,15 +351,12 @@ static struct device_node *graph_get_next_multi_ep(struct device_node **port)
 	 *	port@1 { rep1 };
 	 * };
 	 */
-	do {
-		*port = of_get_next_child(ports, *port);
-		if (!*port)
+	for_each_child_of_node(ports, *port) {
+		if (of_node_name_eq(*port, "port")) {
+			ep  = port_to_endpoint(*port);
+			rep = of_graph_get_remote_endpoint(ep);
 			break;
-	} while (!of_node_name_eq(*port, "port"));
-
-	if (*port) {
-		ep  = port_to_endpoint(*port);
-		rep = of_graph_get_remote_endpoint(ep);
+		}
 	}
 
 	of_node_put(ep);
@@ -1141,21 +1138,8 @@ static int graph_counter(struct device_node *lnk)
 	 */
 	if (graph_lnk_is_multi(lnk)) {
 		struct device_node *ports = port_to_ports(lnk);
-		struct device_node *port = NULL;
-		int cnt = 0;
-
-		/*
-		 * CPU/Codec = N:M case has many endpoints.
-		 * We can't use of_graph_get_endpoint_count() here
-		 */
-		while(1) {
-			port = of_get_next_child(ports, port);
-			if (!port)
-				break;
-			cnt++;
-		}
 
-		return cnt - 1;
+		return of_get_child_count(ports) - 1;
 	}
 	/*
 	 * Single CPU / Codec
-- 
2.17.1





[Index of Archives]     [Pulseaudio]     [Linux Audio Users]     [ALSA Devel]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux