Loading drivers/net/phy/marvell.c +59 −56 Original line number Diff line number Diff line Loading @@ -189,6 +189,16 @@ struct marvell_priv { struct device *hwmon_dev; }; static int marvell_get_page(struct phy_device *phydev) { return phy_read(phydev, MII_MARVELL_PHY_PAGE); } static int marvell_set_page(struct phy_device *phydev, int page) { return phy_write(phydev, MII_MARVELL_PHY_PAGE, page); } static int marvell_ack_interrupt(struct phy_device *phydev) { int err; Loading Loading @@ -385,7 +395,7 @@ static int marvell_of_reg_init(struct phy_device *phydev) if (!paddr || len < (4 * sizeof(*paddr))) return 0; saved_page = phy_read(phydev, MII_MARVELL_PHY_PAGE); saved_page = marvell_get_page(phydev); if (saved_page < 0) return saved_page; current_page = saved_page; Loading @@ -393,15 +403,15 @@ static int marvell_of_reg_init(struct phy_device *phydev) ret = 0; len /= sizeof(*paddr); for (i = 0; i < len - 3; i += 4) { u16 reg_page = be32_to_cpup(paddr + i); u16 page = be32_to_cpup(paddr + i); u16 reg = be32_to_cpup(paddr + i + 1); u16 mask = be32_to_cpup(paddr + i + 2); u16 val_bits = be32_to_cpup(paddr + i + 3); int val; if (reg_page != current_page) { current_page = reg_page; ret = phy_write(phydev, MII_MARVELL_PHY_PAGE, reg_page); if (page != current_page) { current_page = page; ret = marvell_set_page(phydev, page); if (ret < 0) goto err; } Loading @@ -423,7 +433,7 @@ static int marvell_of_reg_init(struct phy_device *phydev) } err: if (current_page != saved_page) { i = phy_write(phydev, MII_MARVELL_PHY_PAGE, saved_page); i = marvell_set_page(phydev, saved_page); if (ret == 0) ret = i; } Loading @@ -440,10 +450,9 @@ static int m88e1121_config_aneg(struct phy_device *phydev) { int err, oldpage, mscr; oldpage = phy_read(phydev, MII_MARVELL_PHY_PAGE); oldpage = marvell_get_page(phydev); err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1121_PHY_MSCR_PAGE); err = marvell_set_page(phydev, MII_88E1121_PHY_MSCR_PAGE); if (err < 0) return err; Loading @@ -464,7 +473,7 @@ static int m88e1121_config_aneg(struct phy_device *phydev) return err; } phy_write(phydev, MII_MARVELL_PHY_PAGE, oldpage); marvell_set_page(phydev, oldpage); err = phy_write(phydev, MII_BMCR, BMCR_RESET); if (err < 0) Loading @@ -482,10 +491,9 @@ static int m88e1318_config_aneg(struct phy_device *phydev) { int err, oldpage, mscr; oldpage = phy_read(phydev, MII_MARVELL_PHY_PAGE); oldpage = marvell_get_page(phydev); err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1121_PHY_MSCR_PAGE); err = marvell_set_page(phydev, MII_88E1121_PHY_MSCR_PAGE); if (err < 0) return err; Loading @@ -496,7 +504,7 @@ static int m88e1318_config_aneg(struct phy_device *phydev) if (err < 0) return err; err = phy_write(phydev, MII_MARVELL_PHY_PAGE, oldpage); err = marvell_set_page(phydev, oldpage); if (err < 0) return err; Loading Loading @@ -596,7 +604,7 @@ static int m88e1510_config_aneg(struct phy_device *phydev) { int err; err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); err = marvell_set_page(phydev, MII_M1111_COPPER); if (err < 0) goto error; Loading @@ -606,7 +614,7 @@ static int m88e1510_config_aneg(struct phy_device *phydev) goto error; /* Then the fiber link */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_FIBER); err = marvell_set_page(phydev, MII_M1111_FIBER); if (err < 0) goto error; Loading @@ -614,10 +622,10 @@ static int m88e1510_config_aneg(struct phy_device *phydev) if (err < 0) goto error; return phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); return marvell_set_page(phydev, MII_M1111_COPPER); error: phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); marvell_set_page(phydev, MII_M1111_COPPER); return err; } Loading @@ -640,7 +648,7 @@ static int m88e1116r_config_init(struct phy_device *phydev) mdelay(500); err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0); err = marvell_set_page(phydev, 0); if (err < 0) return err; Loading @@ -652,7 +660,7 @@ static int m88e1116r_config_init(struct phy_device *phydev) if (err < 0) return err; err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 2); err = marvell_set_page(phydev, 2); if (err < 0) return err; temp = phy_read(phydev, MII_M1116R_CONTROL_REG_MAC); Loading @@ -661,7 +669,7 @@ static int m88e1116r_config_init(struct phy_device *phydev) err = phy_write(phydev, MII_M1116R_CONTROL_REG_MAC, temp); if (err < 0) return err; err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0); err = marvell_set_page(phydev, 0); if (err < 0) return err; Loading Loading @@ -837,9 +845,9 @@ static int m88e1121_config_init(struct phy_device *phydev) { int err, oldpage; oldpage = phy_read(phydev, MII_MARVELL_PHY_PAGE); oldpage = marvell_get_page(phydev); err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1121_PHY_LED_PAGE); err = marvell_set_page(phydev, MII_88E1121_PHY_LED_PAGE); if (err < 0) return err; Loading @@ -849,7 +857,7 @@ static int m88e1121_config_init(struct phy_device *phydev) if (err < 0) return err; phy_write(phydev, MII_MARVELL_PHY_PAGE, oldpage); marvell_set_page(phydev, oldpage); /* Set marvell,reg-init configuration from device tree */ return marvell_config_init(phydev); Loading @@ -863,7 +871,7 @@ static int m88e1510_config_init(struct phy_device *phydev) /* SGMII-to-Copper mode initialization */ if (phydev->interface == PHY_INTERFACE_MODE_SGMII) { /* Select page 18 */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 18); err = marvell_set_page(phydev, 18); if (err < 0) return err; Loading @@ -882,7 +890,7 @@ static int m88e1510_config_init(struct phy_device *phydev) return err; /* Reset page selection */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0); err = marvell_set_page(phydev, 0); if (err < 0) return err; } Loading Loading @@ -912,7 +920,7 @@ static int m88e1118_config_init(struct phy_device *phydev) int err; /* Change address */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x0002); err = marvell_set_page(phydev, 2); if (err < 0) return err; Loading @@ -922,7 +930,7 @@ static int m88e1118_config_init(struct phy_device *phydev) return err; /* Change address */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x0003); err = marvell_set_page(phydev, 3); if (err < 0) return err; Loading @@ -939,7 +947,7 @@ static int m88e1118_config_init(struct phy_device *phydev) return err; /* Reset address */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x0); err = marvell_set_page(phydev, 0); if (err < 0) return err; Loading @@ -951,7 +959,7 @@ static int m88e1149_config_init(struct phy_device *phydev) int err; /* Change address */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x0002); err = marvell_set_page(phydev, 2); if (err < 0) return err; Loading @@ -965,7 +973,7 @@ static int m88e1149_config_init(struct phy_device *phydev) return err; /* Reset address */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x0); err = marvell_set_page(phydev, 0); if (err < 0) return err; Loading Loading @@ -1268,7 +1276,7 @@ static int marvell_read_status(struct phy_device *phydev) /* Check the fiber mode first */ if (phydev->supported & SUPPORTED_FIBRE && phydev->interface != PHY_INTERFACE_MODE_SGMII) { err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_FIBER); err = marvell_set_page(phydev, MII_M1111_FIBER); if (err < 0) goto error; Loading @@ -1287,7 +1295,7 @@ static int marvell_read_status(struct phy_device *phydev) return 0; /* If fiber link is down, check and save copper mode state */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); err = marvell_set_page(phydev, MII_M1111_COPPER); if (err < 0) goto error; } Loading @@ -1295,7 +1303,7 @@ static int marvell_read_status(struct phy_device *phydev) return marvell_read_status_page(phydev, MII_M1111_COPPER); error: phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); marvell_set_page(phydev, MII_M1111_COPPER); return err; } Loading @@ -1310,7 +1318,7 @@ static int marvell_suspend(struct phy_device *phydev) /* Suspend the fiber mode first */ if (!(phydev->supported & SUPPORTED_FIBRE)) { err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_FIBER); err = marvell_set_page(phydev, MII_M1111_FIBER); if (err < 0) goto error; Loading @@ -1320,7 +1328,7 @@ static int marvell_suspend(struct phy_device *phydev) goto error; /* Then, the copper link */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); err = marvell_set_page(phydev, MII_M1111_COPPER); if (err < 0) goto error; } Loading @@ -1329,7 +1337,7 @@ static int marvell_suspend(struct phy_device *phydev) return genphy_suspend(phydev); error: phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); marvell_set_page(phydev, MII_M1111_COPPER); return err; } Loading @@ -1344,7 +1352,7 @@ static int marvell_resume(struct phy_device *phydev) /* Resume the fiber mode first */ if (!(phydev->supported & SUPPORTED_FIBRE)) { err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_FIBER); err = marvell_set_page(phydev, MII_M1111_FIBER); if (err < 0) goto error; Loading @@ -1354,7 +1362,7 @@ static int marvell_resume(struct phy_device *phydev) goto error; /* Then, the copper link */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); err = marvell_set_page(phydev, MII_M1111_COPPER); if (err < 0) goto error; } Loading @@ -1363,7 +1371,7 @@ static int marvell_resume(struct phy_device *phydev) return genphy_resume(phydev); error: phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); marvell_set_page(phydev, MII_M1111_COPPER); return err; } Loading Loading @@ -1391,15 +1399,14 @@ static void m88e1318_get_wol(struct phy_device *phydev, struct ethtool_wolinfo * wol->supported = WAKE_MAGIC; wol->wolopts = 0; if (phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1318S_PHY_WOL_PAGE) < 0) if (marvell_set_page(phydev, MII_88E1318S_PHY_WOL_PAGE) < 0) return; if (phy_read(phydev, MII_88E1318S_PHY_WOL_CTRL) & MII_88E1318S_PHY_WOL_CTRL_MAGIC_PACKET_MATCH_ENABLE) wol->wolopts |= WAKE_MAGIC; if (phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x00) < 0) if (marvell_set_page(phydev, 0x00) < 0) return; } Loading @@ -1407,11 +1414,11 @@ static int m88e1318_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *w { int err, oldpage, temp; oldpage = phy_read(phydev, MII_MARVELL_PHY_PAGE); oldpage = marvell_get_page(phydev); if (wol->wolopts & WAKE_MAGIC) { /* Explicitly switch to page 0x00, just to be sure */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x00); err = marvell_set_page(phydev, 0x00); if (err < 0) return err; Loading @@ -1422,8 +1429,7 @@ static int m88e1318_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *w if (err < 0) return err; err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1318S_PHY_LED_PAGE); err = marvell_set_page(phydev, MII_88E1318S_PHY_LED_PAGE); if (err < 0) return err; Loading @@ -1436,8 +1442,7 @@ static int m88e1318_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *w if (err < 0) return err; err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1318S_PHY_WOL_PAGE); err = marvell_set_page(phydev, MII_88E1318S_PHY_WOL_PAGE); if (err < 0) return err; Loading Loading @@ -1466,8 +1471,7 @@ static int m88e1318_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *w if (err < 0) return err; } else { err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1318S_PHY_WOL_PAGE); err = marvell_set_page(phydev, MII_88E1318S_PHY_WOL_PAGE); if (err < 0) return err; Loading @@ -1480,7 +1484,7 @@ static int m88e1318_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *w return err; } err = phy_write(phydev, MII_MARVELL_PHY_PAGE, oldpage); err = marvell_set_page(phydev, oldpage); if (err < 0) return err; Loading Loading @@ -1515,9 +1519,8 @@ static u64 marvell_get_stat(struct phy_device *phydev, int i) int err, oldpage, val; u64 ret; oldpage = phy_read(phydev, MII_MARVELL_PHY_PAGE); err = phy_write(phydev, MII_MARVELL_PHY_PAGE, stat.page); oldpage = marvell_get_page(phydev); err = marvell_set_page(phydev, stat.page); if (err < 0) return UINT64_MAX; Loading @@ -1530,7 +1533,7 @@ static u64 marvell_get_stat(struct phy_device *phydev, int i) ret = priv->stats[i]; } phy_write(phydev, MII_MARVELL_PHY_PAGE, oldpage); marvell_set_page(phydev, oldpage); return ret; } Loading Loading
drivers/net/phy/marvell.c +59 −56 Original line number Diff line number Diff line Loading @@ -189,6 +189,16 @@ struct marvell_priv { struct device *hwmon_dev; }; static int marvell_get_page(struct phy_device *phydev) { return phy_read(phydev, MII_MARVELL_PHY_PAGE); } static int marvell_set_page(struct phy_device *phydev, int page) { return phy_write(phydev, MII_MARVELL_PHY_PAGE, page); } static int marvell_ack_interrupt(struct phy_device *phydev) { int err; Loading Loading @@ -385,7 +395,7 @@ static int marvell_of_reg_init(struct phy_device *phydev) if (!paddr || len < (4 * sizeof(*paddr))) return 0; saved_page = phy_read(phydev, MII_MARVELL_PHY_PAGE); saved_page = marvell_get_page(phydev); if (saved_page < 0) return saved_page; current_page = saved_page; Loading @@ -393,15 +403,15 @@ static int marvell_of_reg_init(struct phy_device *phydev) ret = 0; len /= sizeof(*paddr); for (i = 0; i < len - 3; i += 4) { u16 reg_page = be32_to_cpup(paddr + i); u16 page = be32_to_cpup(paddr + i); u16 reg = be32_to_cpup(paddr + i + 1); u16 mask = be32_to_cpup(paddr + i + 2); u16 val_bits = be32_to_cpup(paddr + i + 3); int val; if (reg_page != current_page) { current_page = reg_page; ret = phy_write(phydev, MII_MARVELL_PHY_PAGE, reg_page); if (page != current_page) { current_page = page; ret = marvell_set_page(phydev, page); if (ret < 0) goto err; } Loading @@ -423,7 +433,7 @@ static int marvell_of_reg_init(struct phy_device *phydev) } err: if (current_page != saved_page) { i = phy_write(phydev, MII_MARVELL_PHY_PAGE, saved_page); i = marvell_set_page(phydev, saved_page); if (ret == 0) ret = i; } Loading @@ -440,10 +450,9 @@ static int m88e1121_config_aneg(struct phy_device *phydev) { int err, oldpage, mscr; oldpage = phy_read(phydev, MII_MARVELL_PHY_PAGE); oldpage = marvell_get_page(phydev); err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1121_PHY_MSCR_PAGE); err = marvell_set_page(phydev, MII_88E1121_PHY_MSCR_PAGE); if (err < 0) return err; Loading @@ -464,7 +473,7 @@ static int m88e1121_config_aneg(struct phy_device *phydev) return err; } phy_write(phydev, MII_MARVELL_PHY_PAGE, oldpage); marvell_set_page(phydev, oldpage); err = phy_write(phydev, MII_BMCR, BMCR_RESET); if (err < 0) Loading @@ -482,10 +491,9 @@ static int m88e1318_config_aneg(struct phy_device *phydev) { int err, oldpage, mscr; oldpage = phy_read(phydev, MII_MARVELL_PHY_PAGE); oldpage = marvell_get_page(phydev); err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1121_PHY_MSCR_PAGE); err = marvell_set_page(phydev, MII_88E1121_PHY_MSCR_PAGE); if (err < 0) return err; Loading @@ -496,7 +504,7 @@ static int m88e1318_config_aneg(struct phy_device *phydev) if (err < 0) return err; err = phy_write(phydev, MII_MARVELL_PHY_PAGE, oldpage); err = marvell_set_page(phydev, oldpage); if (err < 0) return err; Loading Loading @@ -596,7 +604,7 @@ static int m88e1510_config_aneg(struct phy_device *phydev) { int err; err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); err = marvell_set_page(phydev, MII_M1111_COPPER); if (err < 0) goto error; Loading @@ -606,7 +614,7 @@ static int m88e1510_config_aneg(struct phy_device *phydev) goto error; /* Then the fiber link */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_FIBER); err = marvell_set_page(phydev, MII_M1111_FIBER); if (err < 0) goto error; Loading @@ -614,10 +622,10 @@ static int m88e1510_config_aneg(struct phy_device *phydev) if (err < 0) goto error; return phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); return marvell_set_page(phydev, MII_M1111_COPPER); error: phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); marvell_set_page(phydev, MII_M1111_COPPER); return err; } Loading @@ -640,7 +648,7 @@ static int m88e1116r_config_init(struct phy_device *phydev) mdelay(500); err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0); err = marvell_set_page(phydev, 0); if (err < 0) return err; Loading @@ -652,7 +660,7 @@ static int m88e1116r_config_init(struct phy_device *phydev) if (err < 0) return err; err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 2); err = marvell_set_page(phydev, 2); if (err < 0) return err; temp = phy_read(phydev, MII_M1116R_CONTROL_REG_MAC); Loading @@ -661,7 +669,7 @@ static int m88e1116r_config_init(struct phy_device *phydev) err = phy_write(phydev, MII_M1116R_CONTROL_REG_MAC, temp); if (err < 0) return err; err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0); err = marvell_set_page(phydev, 0); if (err < 0) return err; Loading Loading @@ -837,9 +845,9 @@ static int m88e1121_config_init(struct phy_device *phydev) { int err, oldpage; oldpage = phy_read(phydev, MII_MARVELL_PHY_PAGE); oldpage = marvell_get_page(phydev); err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1121_PHY_LED_PAGE); err = marvell_set_page(phydev, MII_88E1121_PHY_LED_PAGE); if (err < 0) return err; Loading @@ -849,7 +857,7 @@ static int m88e1121_config_init(struct phy_device *phydev) if (err < 0) return err; phy_write(phydev, MII_MARVELL_PHY_PAGE, oldpage); marvell_set_page(phydev, oldpage); /* Set marvell,reg-init configuration from device tree */ return marvell_config_init(phydev); Loading @@ -863,7 +871,7 @@ static int m88e1510_config_init(struct phy_device *phydev) /* SGMII-to-Copper mode initialization */ if (phydev->interface == PHY_INTERFACE_MODE_SGMII) { /* Select page 18 */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 18); err = marvell_set_page(phydev, 18); if (err < 0) return err; Loading @@ -882,7 +890,7 @@ static int m88e1510_config_init(struct phy_device *phydev) return err; /* Reset page selection */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0); err = marvell_set_page(phydev, 0); if (err < 0) return err; } Loading Loading @@ -912,7 +920,7 @@ static int m88e1118_config_init(struct phy_device *phydev) int err; /* Change address */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x0002); err = marvell_set_page(phydev, 2); if (err < 0) return err; Loading @@ -922,7 +930,7 @@ static int m88e1118_config_init(struct phy_device *phydev) return err; /* Change address */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x0003); err = marvell_set_page(phydev, 3); if (err < 0) return err; Loading @@ -939,7 +947,7 @@ static int m88e1118_config_init(struct phy_device *phydev) return err; /* Reset address */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x0); err = marvell_set_page(phydev, 0); if (err < 0) return err; Loading @@ -951,7 +959,7 @@ static int m88e1149_config_init(struct phy_device *phydev) int err; /* Change address */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x0002); err = marvell_set_page(phydev, 2); if (err < 0) return err; Loading @@ -965,7 +973,7 @@ static int m88e1149_config_init(struct phy_device *phydev) return err; /* Reset address */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x0); err = marvell_set_page(phydev, 0); if (err < 0) return err; Loading Loading @@ -1268,7 +1276,7 @@ static int marvell_read_status(struct phy_device *phydev) /* Check the fiber mode first */ if (phydev->supported & SUPPORTED_FIBRE && phydev->interface != PHY_INTERFACE_MODE_SGMII) { err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_FIBER); err = marvell_set_page(phydev, MII_M1111_FIBER); if (err < 0) goto error; Loading @@ -1287,7 +1295,7 @@ static int marvell_read_status(struct phy_device *phydev) return 0; /* If fiber link is down, check and save copper mode state */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); err = marvell_set_page(phydev, MII_M1111_COPPER); if (err < 0) goto error; } Loading @@ -1295,7 +1303,7 @@ static int marvell_read_status(struct phy_device *phydev) return marvell_read_status_page(phydev, MII_M1111_COPPER); error: phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); marvell_set_page(phydev, MII_M1111_COPPER); return err; } Loading @@ -1310,7 +1318,7 @@ static int marvell_suspend(struct phy_device *phydev) /* Suspend the fiber mode first */ if (!(phydev->supported & SUPPORTED_FIBRE)) { err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_FIBER); err = marvell_set_page(phydev, MII_M1111_FIBER); if (err < 0) goto error; Loading @@ -1320,7 +1328,7 @@ static int marvell_suspend(struct phy_device *phydev) goto error; /* Then, the copper link */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); err = marvell_set_page(phydev, MII_M1111_COPPER); if (err < 0) goto error; } Loading @@ -1329,7 +1337,7 @@ static int marvell_suspend(struct phy_device *phydev) return genphy_suspend(phydev); error: phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); marvell_set_page(phydev, MII_M1111_COPPER); return err; } Loading @@ -1344,7 +1352,7 @@ static int marvell_resume(struct phy_device *phydev) /* Resume the fiber mode first */ if (!(phydev->supported & SUPPORTED_FIBRE)) { err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_FIBER); err = marvell_set_page(phydev, MII_M1111_FIBER); if (err < 0) goto error; Loading @@ -1354,7 +1362,7 @@ static int marvell_resume(struct phy_device *phydev) goto error; /* Then, the copper link */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); err = marvell_set_page(phydev, MII_M1111_COPPER); if (err < 0) goto error; } Loading @@ -1363,7 +1371,7 @@ static int marvell_resume(struct phy_device *phydev) return genphy_resume(phydev); error: phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_COPPER); marvell_set_page(phydev, MII_M1111_COPPER); return err; } Loading Loading @@ -1391,15 +1399,14 @@ static void m88e1318_get_wol(struct phy_device *phydev, struct ethtool_wolinfo * wol->supported = WAKE_MAGIC; wol->wolopts = 0; if (phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1318S_PHY_WOL_PAGE) < 0) if (marvell_set_page(phydev, MII_88E1318S_PHY_WOL_PAGE) < 0) return; if (phy_read(phydev, MII_88E1318S_PHY_WOL_CTRL) & MII_88E1318S_PHY_WOL_CTRL_MAGIC_PACKET_MATCH_ENABLE) wol->wolopts |= WAKE_MAGIC; if (phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x00) < 0) if (marvell_set_page(phydev, 0x00) < 0) return; } Loading @@ -1407,11 +1414,11 @@ static int m88e1318_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *w { int err, oldpage, temp; oldpage = phy_read(phydev, MII_MARVELL_PHY_PAGE); oldpage = marvell_get_page(phydev); if (wol->wolopts & WAKE_MAGIC) { /* Explicitly switch to page 0x00, just to be sure */ err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0x00); err = marvell_set_page(phydev, 0x00); if (err < 0) return err; Loading @@ -1422,8 +1429,7 @@ static int m88e1318_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *w if (err < 0) return err; err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1318S_PHY_LED_PAGE); err = marvell_set_page(phydev, MII_88E1318S_PHY_LED_PAGE); if (err < 0) return err; Loading @@ -1436,8 +1442,7 @@ static int m88e1318_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *w if (err < 0) return err; err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1318S_PHY_WOL_PAGE); err = marvell_set_page(phydev, MII_88E1318S_PHY_WOL_PAGE); if (err < 0) return err; Loading Loading @@ -1466,8 +1471,7 @@ static int m88e1318_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *w if (err < 0) return err; } else { err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_88E1318S_PHY_WOL_PAGE); err = marvell_set_page(phydev, MII_88E1318S_PHY_WOL_PAGE); if (err < 0) return err; Loading @@ -1480,7 +1484,7 @@ static int m88e1318_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *w return err; } err = phy_write(phydev, MII_MARVELL_PHY_PAGE, oldpage); err = marvell_set_page(phydev, oldpage); if (err < 0) return err; Loading Loading @@ -1515,9 +1519,8 @@ static u64 marvell_get_stat(struct phy_device *phydev, int i) int err, oldpage, val; u64 ret; oldpage = phy_read(phydev, MII_MARVELL_PHY_PAGE); err = phy_write(phydev, MII_MARVELL_PHY_PAGE, stat.page); oldpage = marvell_get_page(phydev); err = marvell_set_page(phydev, stat.page); if (err < 0) return UINT64_MAX; Loading @@ -1530,7 +1533,7 @@ static u64 marvell_get_stat(struct phy_device *phydev, int i) ret = priv->stats[i]; } phy_write(phydev, MII_MARVELL_PHY_PAGE, oldpage); marvell_set_page(phydev, oldpage); return ret; } Loading