OSDN Git Service

net: phy: at803x: use phy_modify()
authorLuo Jie <luoj@codeaurora.org>
Sun, 24 Oct 2021 08:27:26 +0000 (16:27 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 25 Oct 2021 13:04:18 +0000 (14:04 +0100)
Convert at803x_set_wol to use phy_modify.

Signed-off-by: Luo Jie <luoj@codeaurora.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/at803x.c

index d0f41cd..cf25cd4 100644 (file)
@@ -357,16 +357,12 @@ static int at803x_set_wol(struct phy_device *phydev,
                        phy_write_mmd(phydev, MDIO_MMD_PCS, offsets[i],
                                      mac[(i * 2) + 1] | (mac[(i * 2)] << 8));
 
-               value = phy_read(phydev, AT803X_INTR_ENABLE);
-               value |= AT803X_INTR_ENABLE_WOL;
-               ret = phy_write(phydev, AT803X_INTR_ENABLE, value);
+               ret = phy_modify(phydev, AT803X_INTR_ENABLE, 0, AT803X_INTR_ENABLE_WOL);
                if (ret)
                        return ret;
                value = phy_read(phydev, AT803X_INTR_STATUS);
        } else {
-               value = phy_read(phydev, AT803X_INTR_ENABLE);
-               value &= (~AT803X_INTR_ENABLE_WOL);
-               ret = phy_write(phydev, AT803X_INTR_ENABLE, value);
+               ret = phy_modify(phydev, AT803X_INTR_ENABLE, AT803X_INTR_ENABLE_WOL, 0);
                if (ret)
                        return ret;
                value = phy_read(phydev, AT803X_INTR_STATUS);