Convert m88e1318_get_wol() to use the well implemented phy_read_paged()
instead of open coding it.

Signed-off-by: Jisheng Zhang <jisheng.zh...@synaptics.com>
---
 drivers/net/phy/marvell.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index bb86ac0bd092..5aec673a0120 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -1598,21 +1598,15 @@ static int m88e1121_did_interrupt(struct phy_device 
*phydev)
 static void m88e1318_get_wol(struct phy_device *phydev,
                             struct ethtool_wolinfo *wol)
 {
-       int oldpage, ret = 0;
+       int ret;
 
        wol->supported = WAKE_MAGIC;
        wol->wolopts = 0;
 
-       oldpage = phy_select_page(phydev, MII_MARVELL_WOL_PAGE);
-       if (oldpage < 0)
-               goto error;
-
-       ret = __phy_read(phydev, MII_88E1318S_PHY_WOL_CTRL);
-       if (ret & MII_88E1318S_PHY_WOL_CTRL_MAGIC_PACKET_MATCH_ENABLE)
+       ret = phy_read_paged(phydev, MII_MARVELL_WOL_PAGE,
+                            MII_88E1318S_PHY_WOL_CTRL);
+       if (ret >= 0 && ret & 
MII_88E1318S_PHY_WOL_CTRL_MAGIC_PACKET_MATCH_ENABLE)
                wol->wolopts |= WAKE_MAGIC;
-
-error:
-       phy_restore_page(phydev, oldpage, ret);
 }
 
 static int m88e1318_set_wol(struct phy_device *phydev,
-- 
2.28.0

Reply via email to