+ if (phydev->drv && phydev->drv->update_link)
+ return phydev->drv->update_link(phydev);
+
- /* Do a fake read */
- status = phy_read(phydev, MII_BMSR);
- if (status < 0)
+ /* The link state is latched low so that momentary link
+ * drops can be detected. Do not double-read the status
+ * in polling mode to detect such short link drops.