|
@@ -257,7 +257,8 @@ static int marvell_config_aneg(struct phy_device *phydev)
|
|
|
|
|
|
/* The Marvell PHY has an errata which requires
|
|
/* The Marvell PHY has an errata which requires
|
|
* that certain registers get written in order
|
|
* that certain registers get written in order
|
|
- * to restart autonegotiation */
|
|
|
|
|
|
+ * to restart autonegotiation
|
|
|
|
+ */
|
|
err = phy_write(phydev, MII_BMCR, BMCR_RESET);
|
|
err = phy_write(phydev, MII_BMCR, BMCR_RESET);
|
|
|
|
|
|
if (err < 0)
|
|
if (err < 0)
|
|
@@ -299,8 +300,7 @@ static int marvell_config_aneg(struct phy_device *phydev)
|
|
if (phydev->autoneg != AUTONEG_ENABLE) {
|
|
if (phydev->autoneg != AUTONEG_ENABLE) {
|
|
int bmcr;
|
|
int bmcr;
|
|
|
|
|
|
- /*
|
|
|
|
- * A write to speed/duplex bits (that is performed by
|
|
|
|
|
|
+ /* A write to speed/duplex bits (that is performed by
|
|
* genphy_config_aneg() call above) must be followed by
|
|
* genphy_config_aneg() call above) must be followed by
|
|
* a software reset. Otherwise, the write has no effect.
|
|
* a software reset. Otherwise, the write has no effect.
|
|
*/
|
|
*/
|
|
@@ -359,8 +359,7 @@ static int m88e1111_config_aneg(struct phy_device *phydev)
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_OF_MDIO
|
|
#ifdef CONFIG_OF_MDIO
|
|
-/*
|
|
|
|
- * Set and/or override some configuration registers based on the
|
|
|
|
|
|
+/* Set and/or override some configuration registers based on the
|
|
* marvell,reg-init property stored in the of_node for the phydev.
|
|
* marvell,reg-init property stored in the of_node for the phydev.
|
|
*
|
|
*
|
|
* marvell,reg-init = <reg-page reg mask value>,...;
|
|
* marvell,reg-init = <reg-page reg mask value>,...;
|
|
@@ -1057,7 +1056,8 @@ static int marvell_update_link(struct phy_device *phydev, int fiber)
|
|
int status;
|
|
int status;
|
|
|
|
|
|
/* Use the generic register for copper link, or specific
|
|
/* Use the generic register for copper link, or specific
|
|
- * register for fiber case */
|
|
|
|
|
|
+ * register for fiber case
|
|
|
|
+ */
|
|
if (fiber) {
|
|
if (fiber) {
|
|
status = phy_read(phydev, MII_M1011_PHY_STATUS);
|
|
status = phy_read(phydev, MII_M1011_PHY_STATUS);
|
|
if (status < 0)
|
|
if (status < 0)
|
|
@@ -1092,7 +1092,8 @@ static int marvell_read_status_page(struct phy_device *phydev, int page)
|
|
int fiber;
|
|
int fiber;
|
|
|
|
|
|
/* Detect and update the link, but return if there
|
|
/* Detect and update the link, but return if there
|
|
- * was an error */
|
|
|
|
|
|
+ * was an error
|
|
|
|
+ */
|
|
if (page == MII_M1111_FIBER)
|
|
if (page == MII_M1111_FIBER)
|
|
fiber = 1;
|
|
fiber = 1;
|
|
else
|
|
else
|
|
@@ -1217,12 +1218,13 @@ static int marvell_read_status(struct phy_device *phydev)
|
|
if (err < 0)
|
|
if (err < 0)
|
|
goto error;
|
|
goto error;
|
|
|
|
|
|
- /* If the fiber link is up, it is the selected and used link.
|
|
|
|
- * In this case, we need to stay in the fiber page.
|
|
|
|
- * Please to be careful about that, avoid to restore Copper page
|
|
|
|
- * in other functions which could break the behaviour
|
|
|
|
- * for some fiber phy like 88E1512.
|
|
|
|
- * */
|
|
|
|
|
|
+ /* If the fiber link is up, it is the selected and
|
|
|
|
+ * used link. In this case, we need to stay in the
|
|
|
|
+ * fiber page. Please to be careful about that, avoid
|
|
|
|
+ * to restore Copper page in other functions which
|
|
|
|
+ * could break the behaviour for some fiber phy like
|
|
|
|
+ * 88E1512.
|
|
|
|
+ */
|
|
if (phydev->link)
|
|
if (phydev->link)
|
|
return 0;
|
|
return 0;
|
|
|
|
|