From 8a67202f814bbd808484ed00f93ede0531f51506 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 04 Dec 2023 07:11:12 +0000
Subject: [PATCH] 修改ip1811 driver

---
 kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c |   40 +++++++++++++++++++++++++++++++++++++---
 1 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
index d945d92..832f2b3 100644
--- a/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+++ b/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
@@ -2346,13 +2346,18 @@
 {
 }
 
+
+static unsigned char macaddr[6];
+extern ssize_t at24_mac_read(unsigned char* addr);
+extern ssize_t at24_mac1_read(unsigned char* addr);
 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};
-	int ret, id = bsp_priv->bus_id;
-
+	int ret,i, id = bsp_priv->bus_id;
+	printk("troy test id : %d\n",id);
+#if 0
 	rk_devinfo_get_eth_mac(addr);
 	if (is_valid_ether_addr(addr))
 		goto out;
@@ -2383,6 +2388,35 @@
 	} else {
 		memcpy(addr, &ethaddr[id * ETH_ALEN], ETH_ALEN);
 	}
+#endif
+     #if 1
+	if (id == 1 ){
+        	if (at24_mac_read(macaddr) > 0) {
+                	printk("ben %s: at24_mac_read Success!! \n", __func__);
+                	memcpy(addr, macaddr, 6);
+               	 	printk("Read the Ethernet MAC address from :");
+                	for (i = 0; i < 5; i++)
+                       		 printk("%2.2x:", addr[i]);
+        	} else {
+                printk("ben %s: at24_mac_read Failed!! \n", __func__);
+                goto out;
+        	}
+	}
+	else 
+	{
+		if (at24_mac1_read(macaddr) > 0) {
+                        printk("ben %s: at24_mac_read Success!! \n", __func__);
+                        memcpy(addr, macaddr, 6);
+                        printk("Read the Ethernet MAC address from :");
+                        for (i = 0; i < 5; i++)
+                                 printk("%2.2x:", addr[i]);
+                } else {
+                printk("ben %s: at24_mac_read Failed!! \n", __func__);
+                goto out;
+                }
+	}
+	
+        #endif
 
 out:
 	dev_err(dev, "%s: mac address: %pM\n", __func__, addr);
@@ -2546,7 +2580,7 @@
 		.of_match_table = rk_gmac_dwmac_match,
 	},
 };
-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