From 9999e48639b3cecb08ffb37358bcba3b48161b29 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 10 May 2024 08:50:17 +0000
Subject: [PATCH] add ax88772_rst

---
 kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c |   35 +++++++++++++++++++++++++++++++++--
 1 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
index cf9c46e..47bb2b3 100644
--- a/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+++ b/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
@@ -2711,13 +2711,18 @@
 }
 EXPORT_SYMBOL(dwmac_rk_get_phy_interface);
 
+static unsigned char macaddr[6];
+extern ssize_t at24_mac_read(unsigned char* addr);
 static void rk_get_eth_addr(void *priv, unsigned char *addr)
 {
 	struct rk_priv_data *bsp_priv = priv;
 	struct device *dev = &bsp_priv->pdev->dev;
-	unsigned char ethaddr[ETH_ALEN * MAX_ETH] = {0};
+	//unsigned char ethaddr[ETH_ALEN * MAX_ETH] = {0};
 	int ret, id = bsp_priv->bus_id;
+	//int i;
 
+	printk("hw-debug:enter rk_get_eth_addr.. \n");
+#if 0
 	if (is_valid_ether_addr(addr))
 		goto out;
 
@@ -2747,7 +2752,32 @@
 	} else {
 		memcpy(addr, &ethaddr[id * ETH_ALEN], ETH_ALEN);
 	}
+#endif
+	
 
+	//eeprom
+        	ret = at24_mac_read(macaddr);
+        	if (ret > 0)
+        	{
+                	printk("ben %s: at24_mac_read Success!! \n", __func__);
+                	memcpy(addr, macaddr, 6);
+
+                	if ((addr[0] == 0x68) && (addr[1] == 0xed))
+                	{
+                        	printk("at24_eeprom mac is valid \n", __func__);
+                        	goto out;
+        		}
+                	else
+                	{
+                        	printk("at24_eeprom mac is invalid \n", __func__);
+                        	addr[0] = 0x68;
+                        	addr[1] = 0xed;
+                        	addr[2] = 0x01;
+                        	addr[3] = 0x02;
+                        	addr[4] = 0x03;
+                        	addr[5] = 0x04;
+                	}
+    		}
 out:
 	dev_err(dev, "%s: mac address: %pM\n", __func__, addr);
 }
@@ -2920,7 +2950,8 @@
 		.of_match_table = rk_gmac_dwmac_match,
 	},
 };
-module_platform_driver(rk_gmac_dwmac_driver);
+//module_platform_driver(rk_gmac_dwmac_driver);
+module_platform_driver1(rk_gmac_dwmac_driver);
 
 MODULE_AUTHOR("Chen-Zhi (Roger Chen) <roger.chen@rock-chips.com>");
 MODULE_DESCRIPTION("Rockchip RK3288 DWMAC specific glue layer");

--
Gitblit v1.6.2