net: phy: smsc: simplify lan95xx_config_aneg_ext
authorHeiner Kallweit <hkallweit1@gmail.com>
Mon, 6 Mar 2023 22:10:57 +0000 (23:10 +0100)
committerJakub Kicinski <kuba@kernel.org>
Wed, 8 Mar 2023 07:57:32 +0000 (23:57 -0800)
lan95xx_config_aneg_ext() can be simplified by using phy_set_bits().

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Link: https://lore.kernel.org/r/3da785c7-3ef8-b5d3-89a0-340f550be3c2@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/smsc.c

index ac7481ce2fc16c1a68d964396cb43d861f32cc4b..af89f3ef1c4fe479a00ec81237d9881fc0ee87dc 100644 (file)
@@ -178,18 +178,15 @@ static int lan87xx_config_aneg(struct phy_device *phydev)
 
 static int lan95xx_config_aneg_ext(struct phy_device *phydev)
 {
-       int rc;
-
-       if (phydev->phy_id != 0x0007c0f0) /* not (LAN9500A or LAN9505A) */
-               return lan87xx_config_aneg(phydev);
+       if (phydev->phy_id == 0x0007c0f0) { /* LAN9500A or LAN9505A */
+               /* Extend Manual AutoMDIX timer */
+               int rc = phy_set_bits(phydev, PHY_EDPD_CONFIG,
+                                     PHY_EDPD_CONFIG_EXT_CROSSOVER_);
 
-       /* Extend Manual AutoMDIX timer */
-       rc = phy_read(phydev, PHY_EDPD_CONFIG);
-       if (rc < 0)
-               return rc;
+               if (rc < 0)
+                       return rc;
+       }
 
-       rc |= PHY_EDPD_CONFIG_EXT_CROSSOVER_;
-       phy_write(phydev, PHY_EDPD_CONFIG, rc);
        return lan87xx_config_aneg(phydev);
 }