hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
....@@ -2711,13 +2711,17 @@
27112711 }
27122712 EXPORT_SYMBOL(dwmac_rk_get_phy_interface);
27132713
2714
+static unsigned char macaddr[6];
2715
+extern ssize_t at24_mac_read(unsigned char* addr);
27142716 static void rk_get_eth_addr(void *priv, unsigned char *addr)
27152717 {
27162718 struct rk_priv_data *bsp_priv = priv;
27172719 struct device *dev = &bsp_priv->pdev->dev;
2718
- unsigned char ethaddr[ETH_ALEN * MAX_ETH] = {0};
2719
- int ret, id = bsp_priv->bus_id;
2720
+ //unsigned char ethaddr[ETH_ALEN * MAX_ETH] = {0};
2721
+ //int ret, id = bsp_priv->bus_id;
2722
+ int i;
27202723
2724
+#if 0
27212725 if (is_valid_ether_addr(addr))
27222726 goto out;
27232727
....@@ -2747,7 +2751,23 @@
27472751 } else {
27482752 memcpy(addr, &ethaddr[id * ETH_ALEN], ETH_ALEN);
27492753 }
2754
+#endif
2755
+
2756
+ #if 1
2757
+ if (at24_mac_read(macaddr) > 0) {
2758
+ printk("ben %s: at24_mac_read Success!! \n", __func__);
2759
+ memcpy(addr, macaddr, 6);
27502760
2761
+ printk("Read the Ethernet MAC address from :");
2762
+ for (i = 0; i < 5; i++)
2763
+ printk("%2.2x:", addr[i]);
2764
+
2765
+ printk("%2.2x\n", addr[i]);
2766
+ } else {
2767
+ printk("ben %s: at24_mac_read Failed!! \n", __func__);
2768
+ goto out;
2769
+ }
2770
+ #endif
27512771 out:
27522772 dev_err(dev, "%s: mac address: %pM\n", __func__, addr);
27532773 }
....@@ -2920,7 +2940,8 @@
29202940 .of_match_table = rk_gmac_dwmac_match,
29212941 },
29222942 };
2923
-module_platform_driver(rk_gmac_dwmac_driver);
2943
+//module_platform_driver(rk_gmac_dwmac_driver);
2944
+module_platform_driver1(rk_gmac_dwmac_driver);
29242945
29252946 MODULE_AUTHOR("Chen-Zhi (Roger Chen) <roger.chen@rock-chips.com>");
29262947 MODULE_DESCRIPTION("Rockchip RK3288 DWMAC specific glue layer");