diff --git a/drivers/net/phy/motorcomm.c b/drivers/net/phy/motorcomm.c index 708491bc198a..688679457ef9 100644 --- a/drivers/net/phy/motorcomm.c +++ b/drivers/net/phy/motorcomm.c @@ -974,7 +974,8 @@ static u32 yt8531_get_ldo_vol(struct phy_device *phydev) { u32 val; - val = ytphy_read_ext_with_lock(phydev, YT8521_CHIP_CONFIG_REG); + val = ytphy_read_ext(phydev, YT8521_CHIP_CONFIG_REG); + val = FIELD_GET(YT8531_RGMII_LDO_VOL_MASK, val); return val <= YT8531_LDO_VOL_1V8 ? val : YT8531_LDO_VOL_1V8; @@ -1010,10 +1011,11 @@ static int yt8531_set_ds(struct phy_device *phydev) ds = YT8531_RGMII_RX_DS_DEFAULT; } - ret = ytphy_modify_ext_with_lock(phydev, - YTPHY_PAD_DRIVE_STRENGTH_REG, - YT8531_RGMII_RXC_DS_MASK, - FIELD_PREP(YT8531_RGMII_RXC_DS_MASK, ds)); + ret = ytphy_modify_ext(phydev, + YTPHY_PAD_DRIVE_STRENGTH_REG, + YT8531_RGMII_RXC_DS_MASK, + FIELD_PREP(YT8531_RGMII_RXC_DS_MASK, ds)); + if (ret < 0) return ret; @@ -1033,10 +1035,11 @@ static int yt8531_set_ds(struct phy_device *phydev) ds_field_low = FIELD_GET(GENMASK(1, 0), ds); ds_field_low = FIELD_PREP(YT8531_RGMII_RXD_DS_LOW_MASK, ds_field_low); - ret = ytphy_modify_ext_with_lock(phydev, - YTPHY_PAD_DRIVE_STRENGTH_REG, - YT8531_RGMII_RXD_DS_LOW_MASK | YT8531_RGMII_RXD_DS_HI_MASK, - ds_field_low | ds_field_hi); + ret = ytphy_modify_ext(phydev, + YTPHY_PAD_DRIVE_STRENGTH_REG, + YT8531_RGMII_RXD_DS_LOW_MASK | YT8531_RGMII_RXD_DS_HI_MASK, + ds_field_low | ds_field_hi); + if (ret < 0) return ret; @@ -1825,7 +1828,9 @@ static int yt8531_config_init(struct phy_device *phydev) return ret; } + phy_lock_mdio_bus(phydev); ret = yt8531_set_ds(phydev); + phy_unlock_mdio_bus(phydev); if (ret < 0) return ret;