|
@@ -153,6 +153,7 @@ static int fec_miiphy_write(const char *dev, uint8_t phyAddr, uint8_t regAddr,
|
|
|
static int miiphy_restart_aneg(struct eth_device *dev)
|
|
|
{
|
|
|
struct fec_priv *fec = (struct fec_priv *)dev->priv;
|
|
|
+ int ret = 0;
|
|
|
|
|
|
/*
|
|
|
* Wake up from sleep if necessary
|
|
@@ -173,7 +174,11 @@ static int miiphy_restart_aneg(struct eth_device *dev)
|
|
|
LPA_10HALF | PHY_ANLPAR_PSB_802_3);
|
|
|
miiphy_write(dev->name, fec->phy_id, MII_BMCR,
|
|
|
BMCR_ANENABLE | BMCR_ANRESTART);
|
|
|
- return 0;
|
|
|
+
|
|
|
+ if (fec->mii_postcall)
|
|
|
+ ret = fec->mii_postcall(fec->phy_id);
|
|
|
+
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
static int miiphy_wait_aneg(struct eth_device *dev)
|
|
@@ -786,3 +791,10 @@ int fecmxc_initialize_multi(bd_t *bd, int dev_id, int phy_id, uint32_t addr)
|
|
|
|
|
|
return lout;
|
|
|
}
|
|
|
+
|
|
|
+int fecmxc_register_mii_postcall(struct eth_device *dev, int (*cb)(int))
|
|
|
+{
|
|
|
+ struct fec_priv *fec = (struct fec_priv *)dev->priv;
|
|
|
+ fec->mii_postcall = cb;
|
|
|
+ return 0;
|
|
|
+}
|