return val;
 }
 
-static void fec_mii_setspeed(struct fec_priv *fec)
+static void fec_mii_setspeed(struct ethernet_regs *eth)
 {
        /*
         * Set MII_SPEED = (1/(mii_speed * 2)) * System Clock
         * and do not drop the Preamble.
         */
        writel((((imx_get_fecclk() / 1000000) + 2) / 5) << 1,
-                       &fec->eth->mii_speed);
-       debug("%s: mii_speed %08x\n", __func__, readl(&fec->eth->mii_speed));
+                       ð->mii_speed);
+       debug("%s: mii_speed %08x\n", __func__, readl(ð->mii_speed));
 }
 
 static int fec_mdio_write(struct ethernet_regs *eth, uint8_t phyAddr,
        fec_reg_setup(fec);
 
        if (fec->xcv_type != SEVENWIRE)
-               fec_mii_setspeed(fec);
+               fec_mii_setspeed(fec->bus->priv);
 
        /*
         * Set Opcode/Pause Duration Register
        }
 
        fec_reg_setup(fec);
-       fec_mii_setspeed(fec);
 
        if (dev_id == -1) {
                sprintf(edev->name, "FEC");
 #else
        bus->priv = fec->eth;
 #endif
+       fec_mii_setspeed(bus->priv);
        ret = mdio_register(bus);
        if (ret) {
                printf("mdio_register failed\n");