From 5e8555e3ea324daaf0e38422bcba48c4df33a0d9 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Tue, 07 Nov 2023 06:17:58 +0000 Subject: [PATCH] gmac read mac form eeprom --- kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 2 +- kernel/include/linux/platform_device.h | 4 ++++ kernel/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 ++- kernel/include/linux/device.h | 14 ++++++++++++++ 4 files changed, 21 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 0d967a3..9f87f16 100644 --- a/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c +++ b/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c @@ -2565,7 +2565,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"); diff --git a/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 0511062..2fe73f6 100644 --- a/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -2159,7 +2159,8 @@ */ static void stmmac_check_ether_addr(struct stmmac_priv *priv) { - if (!is_valid_ether_addr(priv->dev->dev_addr)) { +// if (!is_valid_ether_addr(priv->dev->dev_addr)) { + if(1) { stmmac_get_umac_addr(priv, priv->hw, priv->dev->dev_addr, 0); if (likely(priv->plat->get_eth_addr)) priv->plat->get_eth_addr(priv->plat->bsp_priv, diff --git a/kernel/include/linux/device.h b/kernel/include/linux/device.h index d91fe50..41d9bd7 100644 --- a/kernel/include/linux/device.h +++ b/kernel/include/linux/device.h @@ -1711,6 +1711,20 @@ } \ module_exit(__driver##_exit); + + +#define module_driver1(__driver, __register, __unregister, ...) \ +static int __init __driver##_init(void) \ +{ \ + return __register(&(__driver) , ##__VA_ARGS__); \ +} \ +arch_initcall(__driver##_init); \ +static void __exit __driver##_exit(void) \ +{ \ + __unregister(&(__driver) , ##__VA_ARGS__); \ +} \ +module_exit(__driver##_exit); + /** * builtin_driver() - Helper macro for drivers that don't do anything * special in init and have no exit. This eliminates some boilerplate. diff --git a/kernel/include/linux/platform_device.h b/kernel/include/linux/platform_device.h index 1de7ea6..67d1bca 100644 --- a/kernel/include/linux/platform_device.h +++ b/kernel/include/linux/platform_device.h @@ -234,6 +234,10 @@ module_driver(__platform_driver, platform_driver_register, \ platform_driver_unregister) +#define module_platform_driver1(__platform_driver) \ + module_driver1(__platform_driver, platform_driver_register, \ + platform_driver_unregister) + /* builtin_platform_driver() - Helper macro for builtin drivers that * don't do anything special in driver init. This eliminates some * boilerplate. Each driver may only use this macro once, and -- Gitblit v1.6.2