diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2018-01-05 19:07:10 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-01-08 22:20:21 +0300 |
commit | f102852f980eac250855504c18f195900616deec (patch) | |
tree | b732623e465dfbea31110fe84ebf2fcb3b73210f /drivers/net/phy/marvell.c | |
parent | 64f26abb17ca2e55ab584352ca4d68cf42c8c102 (diff) | |
download | linux-f102852f980eac250855504c18f195900616deec.tar.xz |
net: phy: fix wrong masks to phy_modify()
The mask argument for phy_modify() in several locations was inverted.
Fixes: fea23fb591cc ("net: phy: convert read-modify-write to phy_modify()")
Reported-by: Heiner Kallweit <hkallweit1@gmail.com>
Tested-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/phy/marvell.c')
-rw-r--r-- | drivers/net/phy/marvell.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c index 2bd38962b5d2..fd66304f18b7 100644 --- a/drivers/net/phy/marvell.c +++ b/drivers/net/phy/marvell.c @@ -668,7 +668,7 @@ static int m88e3016_config_init(struct phy_device *phydev) /* Enable Scrambler and Auto-Crossover */ ret = phy_modify(phydev, MII_88E3016_PHY_SPEC_CTRL, - ~MII_88E3016_DISABLE_SCRAMBLER, + MII_88E3016_DISABLE_SCRAMBLER, MII_88E3016_AUTO_MDIX_CROSSOVER); if (ret < 0) return ret; @@ -684,9 +684,9 @@ static int m88e1111_config_init_hwcfg_mode(struct phy_device *phydev, mode |= MII_M1111_HWCFG_FIBER_COPPER_AUTO; return phy_modify(phydev, MII_M1111_PHY_EXT_SR, - (u16)~(MII_M1111_HWCFG_MODE_MASK | - MII_M1111_HWCFG_FIBER_COPPER_AUTO | - MII_M1111_HWCFG_FIBER_COPPER_RES), + MII_M1111_HWCFG_MODE_MASK | + MII_M1111_HWCFG_FIBER_COPPER_AUTO | + MII_M1111_HWCFG_FIBER_COPPER_RES, mode); } @@ -705,8 +705,7 @@ static int m88e1111_config_init_rgmii_delays(struct phy_device *phydev) } return phy_modify(phydev, MII_M1111_PHY_EXT_CR, - (u16)~(MII_M1111_RGMII_RX_DELAY | - MII_M1111_RGMII_TX_DELAY), + MII_M1111_RGMII_RX_DELAY | MII_M1111_RGMII_TX_DELAY, delay); } @@ -833,7 +832,7 @@ static int m88e1510_config_init(struct phy_device *phydev) /* In reg 20, write MODE[2:0] = 0x1 (SGMII to Copper) */ err = phy_modify(phydev, MII_88E1510_GEN_CTRL_REG_1, - ~MII_88E1510_GEN_CTRL_REG_1_MODE_MASK, + MII_88E1510_GEN_CTRL_REG_1_MODE_MASK, MII_88E1510_GEN_CTRL_REG_1_MODE_SGMII); if (err < 0) return err; @@ -957,7 +956,7 @@ static int m88e1145_config_init_rgmii(struct phy_device *phydev) if (err < 0) return err; - err = phy_modify(phydev, 0x1e, 0xf03f, + err = phy_modify(phydev, 0x1e, 0x0fc0, 2 << 9 | /* 36 ohm */ 2 << 6); /* 39 ohm */ if (err < 0) @@ -1379,7 +1378,7 @@ static int m88e1318_set_wol(struct phy_device *phydev, /* Setup LED[2] as interrupt pin (active low) */ err = __phy_modify(phydev, MII_88E1318S_PHY_LED_TCR, - (u16)~MII_88E1318S_PHY_LED_TCR_FORCE_INT, + MII_88E1318S_PHY_LED_TCR_FORCE_INT, MII_88E1318S_PHY_LED_TCR_INTn_ENABLE | MII_88E1318S_PHY_LED_TCR_INT_ACTIVE_LOW); if (err < 0) @@ -1419,7 +1418,7 @@ static int m88e1318_set_wol(struct phy_device *phydev, /* Clear WOL status and disable magic packet matching */ err = __phy_modify(phydev, MII_88E1318S_PHY_WOL_CTRL, - (u16)~MII_88E1318S_PHY_WOL_CTRL_MAGIC_PACKET_MATCH_ENABLE, + MII_88E1318S_PHY_WOL_CTRL_MAGIC_PACKET_MATCH_ENABLE, MII_88E1318S_PHY_WOL_CTRL_CLEAR_WOL_STATUS); if (err < 0) goto error; |