Move the creation of a random ethernet address from devices.c
into davinci_emac.c. This allows me to delete the davinci_emac_init
function and directly call the dmxxx specific function from the
board file.

Signed-off-by: Troy Kisky <[email protected]>

diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c 
b/arch/arm/mach-davinci/board-dm644x-evm.c
index 5aeb085..625937b 100644
--- a/arch/arm/mach-davinci/board-dm644x-evm.c
+++ b/arch/arm/mach-davinci/board-dm644x-evm.c
@@ -677,7 +677,7 @@ static __init void davinci_evm_init(void)
        davinci_setup_mmc(0, &dm6446evm_mmc_config);
 
        davinci_serial_init(&uart_config);
-       davinci_init_emac(&dm644x_evm_emac_pdata);
+       dm644x_init_emac(&dm644x_evm_emac_pdata);
 
        /* Register the fixup for PHY on DaVinci */
        phy_register_fixup_for_uid(LXT971_PHY_ID, LXT971_PHY_MASK,
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c 
b/arch/arm/mach-davinci/board-dm646x-evm.c
index bcf11d5..405e16f 100644
--- a/arch/arm/mach-davinci/board-dm646x-evm.c
+++ b/arch/arm/mach-davinci/board-dm646x-evm.c
@@ -131,7 +131,7 @@ static __init void evm_init(void)
 {
        evm_init_i2c();
        davinci_serial_init(&uart_config);
-       davinci_init_emac(&dm646x_evm_emac_pdata);
+       dm646x_init_emac(&dm646x_evm_emac_pdata);
 }
 
 static __init void davinci_dm646x_evm_irq_init(void)
diff --git a/arch/arm/mach-davinci/board-sffsdr.c 
b/arch/arm/mach-davinci/board-sffsdr.c
index 2589b0e..988fac1 100644
--- a/arch/arm/mach-davinci/board-sffsdr.c
+++ b/arch/arm/mach-davinci/board-sffsdr.c
@@ -166,7 +166,7 @@ static __init void davinci_sffsdr_init(void)
        sffsdr_init_i2c();
        davinci_serial_init(&uart_config);
        memcpy(sffsdr_emac_pdata.mac_addr, davinci_sffsdr_mac_addr, 6);
-       davinci_init_emac(&sffsdr_emac_pdata);
+       dm644x_init_emac(&sffsdr_emac_pdata);
        setup_usb(0, 0); /* We support only peripheral mode. */
 
        /* mux VLYNQ pins */
diff --git a/arch/arm/mach-davinci/devices.c b/arch/arm/mach-davinci/devices.c
index aff91e8..3cb9385 100644
--- a/arch/arm/mach-davinci/devices.c
+++ b/arch/arm/mach-davinci/devices.c
@@ -243,37 +243,6 @@ static void davinci_init_wdt(void)
 
 /*-------------------------------------------------------------------------*/
 
-#if defined(CONFIG_TI_DAVINCI_EMAC) || defined(CONFIG_TI_DAVINCI_EMAC_MODULE)
-
-void davinci_init_emac(struct emac_platform_data *pdata)
-{
-       DECLARE_MAC_BUF(buf);
-
-       if (cpu_is_davinci_dm644x())
-               dm644x_init_emac(pdata);
-       else if (cpu_is_davinci_dm646x())
-               dm646x_init_emac(pdata);
-
-       /* if valid MAC exists, don't re-register */
-       if (is_valid_ether_addr(pdata->mac_addr))
-               return;
-       else {
-               /* Use random MAC if none passed */
-               random_ether_addr(pdata->mac_addr);
-
-               printk(KERN_WARNING "%s: using random MAC addr: %s\n",
-                      __func__, print_mac(buf, pdata->mac_addr));
-       }
-}
-
-#else
-
-void davinci_init_emac(struct emac_platform_data *unused) {}
-
-#endif
-
-/*-------------------------------------------------------------------------*/
-
 static int __init davinci_init_devices(void)
 {
        /* please keep these calls, and their implementations above,
diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
index 8922327..3c345d8 100644
--- a/drivers/net/davinci_emac.c
+++ b/drivers/net/davinci_emac.c
@@ -2703,6 +2703,13 @@ static int __devinit davinci_emac_probe(struct 
platform_device *pdev)
        }
        ndev->irq = res->start;
 
+       if (!is_valid_ether_addr(priv->mac_addr)) {
+               DECLARE_MAC_BUF(buf);
+               /* Use random MAC if none passed */
+               random_ether_addr(priv->mac_addr);
+               printk(KERN_WARNING "%s: using random MAC addr: %s\n",
+                       __func__, print_mac(buf, priv->mac_addr));
+       }
        /* populate the device structure */
        ndev->validate_addr = NULL;
        ndev->open = emac_dev_open;   /*  i.e. start device  */
-- 
1.5.4.3


_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to