diff mbox series

[U-Boot,4/7] net: sh_eth: Separate out MAC address programming

Message ID 20180124222102.14682-4-marek.vasut+renesas@gmail.com
State Accepted
Commit 68ac92e9378c3453c86de35df0b6700181f4393b
Delegated to: Marek Vasut
Headers show
Series [U-Boot,1/7] net: sh_eth: Unify CONFIG_R8A779[01234] as CONFIG_RCAR_GEN2 | expand

Commit Message

Marek Vasut Jan. 24, 2018, 10:20 p.m. UTC
Pull out the code for writing MAC address into the NIC into a
separate function, so it can be reused by both DM and non-DM
code. This is done in preparation for DM support, which handles
MAC address programming separately.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Joe Hershberger <joe.hershberger@ni.com>
---
 drivers/net/sh_eth.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

Comments

Joe Hershberger Feb. 16, 2018, 8:49 p.m. UTC | #1
On Wed, Jan 24, 2018 at 4:20 PM, Marek Vasut <marek.vasut@gmail.com> wrote:
> Pull out the code for writing MAC address into the NIC into a
> separate function, so it can be reused by both DM and non-DM
> code. This is done in preparation for DM support, which handles
> MAC address programming separately.
>
> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
> Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
> Cc: Joe Hershberger <joe.hershberger@ni.com>

Acked-by: Joe Hershberger <joe.hershberger@ni.com>
diff mbox series

Patch

diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index 99eab4c688..2449e86b7d 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -391,6 +391,18 @@  err_tx_init:
 	return ret;
 }
 
+static void sh_eth_write_hwaddr(struct sh_eth_info *port_info,
+				unsigned char *mac)
+{
+	u32 val;
+
+	val = (mac[0] << 24) | (mac[1] << 16) | (mac[2] << 8) | mac[3];
+	sh_eth_write(port_info, val, MAHR);
+
+	val = (mac[4] << 8) | mac[5];
+	sh_eth_write(port_info, val, MALR);
+}
+
 static int sh_eth_phy_config(struct sh_eth_dev *eth)
 {
 	int port = eth->port, ret = 0;
@@ -433,12 +445,7 @@  static int sh_eth_config(struct sh_eth_dev *eth)
 	sh_eth_write(port_info, 0, ECSIPR);
 
 	/* Set Mac address */
-	val = dev->enetaddr[0] << 24 | dev->enetaddr[1] << 16 |
-	    dev->enetaddr[2] << 8 | dev->enetaddr[3];
-	sh_eth_write(port_info, val, MAHR);
-
-	val = dev->enetaddr[4] << 8 | dev->enetaddr[5];
-	sh_eth_write(port_info, val, MALR);
+	sh_eth_write_hwaddr(port_info, dev->enetaddr);
 
 	sh_eth_write(port_info, RFLR_RFL_MIN, RFLR);
 #if defined(SH_ETH_TYPE_GETHER)