public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: "Marek Behún" <kabel@kernel.org>
To: Ramon Fried <rfried.dev@gmail.com>
Cc: "Joe Hershberger" <joe.hershberger@ni.com>,
	u-boot@lists.denx.de, "Marek Behún" <marek.behun@nic.cz>,
	"Grygorii Strashko" <grygorii.strashko@ti.com>,
	"Murali Karicheri" <m-karicheri2@ti.com>
Subject: [PATCH u-boot-net 1/3] driver: net: ti: keystone_net: Deduplicate code
Date: Mon, 11 Apr 2022 21:20:53 +0200	[thread overview]
Message-ID: <20220411192055.31080-2-kabel@kernel.org> (raw)
In-Reply-To: <20220411192055.31080-1-kabel@kernel.org>

From: Marek Behún <marek.behun@nic.cz>

Deduplicate common code in ks2_eth_bind_slaves().

Signed-off-by: Marek Behún <marek.behun@nic.cz>
---
 drivers/net/ti/keystone_net.c | 75 ++++++++++++++++-------------------
 1 file changed, 34 insertions(+), 41 deletions(-)

diff --git a/drivers/net/ti/keystone_net.c b/drivers/net/ti/keystone_net.c
index 16e3f32bb0..3ee4740ec5 100644
--- a/drivers/net/ti/keystone_net.c
+++ b/drivers/net/ti/keystone_net.c
@@ -621,58 +621,51 @@ static const struct eth_ops ks2_eth_ops = {
 	.write_hwaddr		= ks2_eth_write_hwaddr,
 };
 
-static int ks2_eth_bind_slaves(struct udevice *dev, int gbe, int *gbe_0)
+static int ks2_bind_one_slave(struct udevice *dev, int slave, int *gbe_0)
 {
 	const void *fdt = gd->fdt_blob;
-	struct udevice *sl_dev;
-	int interfaces;
-	int sec_slave;
-	int slave;
-	int ret;
 	char *slave_name;
+	int slave_no;
+	int ret;
+
+	slave_no = fdtdec_get_int(fdt, slave, "slave-port", -ENOENT);
+	if (slave_no == -ENOENT)
+		return 0;
+
+	if (gbe_0 && slave_no == 0) {
+		/* This is the current eth device */
+		*gbe_0 = slave;
+		return 0;
+	}
+
+	/* Slave devices to be registered */
+	slave_name = malloc(20);
+	snprintf(slave_name, 20, "netcp@slave-%d", slave_no);
+	ret = device_bind_driver_to_node(dev, "eth_ks2_sl", slave_name,
+					 offset_to_ofnode(slave), NULL);
+	if (ret)
+		pr_err("ks2_net - not able to bind slave interfaces\n");
+
+	return ret;
+}
+
+static int ks2_eth_bind_slaves(struct udevice *dev, int gbe, int *gbe_0)
+{
+	int interfaces, sec_slave, slave, ret;
+	const void *fdt = gd->fdt_blob;
 
 	interfaces = fdt_subnode_offset(fdt, gbe, "interfaces");
 	fdt_for_each_subnode(slave, fdt, interfaces) {
-		int slave_no;
-
-		slave_no = fdtdec_get_int(fdt, slave, "slave-port", -ENOENT);
-		if (slave_no == -ENOENT)
-			continue;
-
-		if (slave_no == 0) {
-			/* This is the current eth device */
-			*gbe_0 = slave;
-		} else {
-			/* Slave devices to be registered */
-			slave_name = malloc(20);
-			snprintf(slave_name, 20, "netcp@slave-%d", slave_no);
-			ret = device_bind_driver_to_node(dev, "eth_ks2_sl",
-					slave_name, offset_to_ofnode(slave),
-					&sl_dev);
-			if (ret) {
-				pr_err("ks2_net - not able to bind slave interfaces\n");
-				return ret;
-			}
-		}
+		ret = ks2_bind_one_slave(dev, slave, gbe_0);
+		if (ret)
+			return ret;
 	}
 
 	sec_slave = fdt_subnode_offset(fdt, gbe, "secondary-slave-ports");
 	fdt_for_each_subnode(slave, fdt, sec_slave) {
-		int slave_no;
-
-		slave_no = fdtdec_get_int(fdt, slave, "slave-port", -ENOENT);
-		if (slave_no == -ENOENT)
-			continue;
-
-		/* Slave devices to be registered */
-		slave_name = malloc(20);
-		snprintf(slave_name, 20, "netcp@slave-%d", slave_no);
-		ret = device_bind_driver_to_node(dev, "eth_ks2_sl", slave_name,
-					offset_to_ofnode(slave), &sl_dev);
-		if (ret) {
-			pr_err("ks2_net - not able to bind slave interfaces\n");
+		ret = ks2_bind_one_slave(dev, slave, NULL);
+		if (ret)
 			return ret;
-		}
 	}
 
 	return 0;
-- 
2.35.1


  reply	other threads:[~2022-04-11 19:21 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-11 19:20 [PATCH u-boot-net 0/3] A tiny batch of keystone_net changes Marek Behún
2022-04-11 19:20 ` Marek Behún [this message]
2022-04-12 19:53   ` [PATCH u-boot-net 1/3] driver: net: ti: keystone_net: Deduplicate code Ramon Fried
2022-04-11 19:20 ` [PATCH u-boot-net 2/3] driver: net: ti: keystone_net: Convert to ofnode functions Marek Behún
2022-04-12 19:54   ` Ramon Fried
2022-04-11 19:20 ` [PATCH u-boot-net 3/3] driver: net: ti: keystone_net: Change priv member type Marek Behún
2022-04-12 19:54   ` Ramon Fried
2022-04-12 19:57 ` [PATCH u-boot-net 0/3] A tiny batch of keystone_net changes Ramon Fried

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220411192055.31080-2-kabel@kernel.org \
    --to=kabel@kernel.org \
    --cc=grygorii.strashko@ti.com \
    --cc=joe.hershberger@ni.com \
    --cc=m-karicheri2@ti.com \
    --cc=marek.behun@nic.cz \
    --cc=rfried.dev@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox