Merge branch 'master' of git://git.denx.de/u-boot-net
[oweals/u-boot.git] / drivers / net / fec_mxc.c
index 8c4ade5ab5b3cfc11faea668b7b57230391a1919..57f89a37a6c9c1ec813dfa45c8f1ff82455a05ff 100644 (file)
@@ -314,9 +314,9 @@ static int fec_get_hwaddr(struct eth_device *dev, unsigned char *mac)
 {
 /*
  * The MX27 can store the mac address in internal eeprom
- * This mechanism is not supported now by MX51
+ * This mechanism is not supported now by MX51 or MX25
  */
-#ifdef CONFIG_MX51
+#if defined(CONFIG_MX51) || defined(CONFIG_MX25)
        return -1;
 #else
        struct iim_regs *iim = (struct iim_regs *)IMX_IIM_BASE;
@@ -325,7 +325,7 @@ static int fec_get_hwaddr(struct eth_device *dev, unsigned char *mac)
        for (i = 0; i < 6; i++)
                mac[6-1-i] = readl(&iim->iim_bank_area0[IIM0_MAC + i]);
 
-       return is_valid_ether_addr(mac);
+       return !is_valid_ether_addr(mac);
 #endif
 }
 
@@ -505,7 +505,6 @@ static int fec_init(struct eth_device *dev, bd_t* bd)
                miiphy_restart_aneg(dev);
 
        fec_open(dev);
-       fec_set_hwaddr(dev);
        return 0;
 }
 
@@ -713,6 +712,7 @@ static int fec_probe(bd_t *bd)
        edev->send = fec_send;
        edev->recv = fec_recv;
        edev->halt = fec_halt;
+       edev->write_hwaddr = fec_set_hwaddr;
 
        fec->eth = (struct ethernet_regs *)IMX_FEC_BASE;
        fec->bd = bd;