]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
net: phy: at803x: move qca83xx specific check in dedicated functions
authorChristian Marangi <ansuelsmth@gmail.com>
Fri, 8 Dec 2023 14:51:51 +0000 (15:51 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 13 Dec 2023 10:34:27 +0000 (10:34 +0000)
Rework qca83xx specific check to dedicated function to tidy things up
and drop useless phy_id check.

Also drop an useless link_change_notify for QCA8337 as it did nothing an
returned early.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/at803x.c

index 277a6c27af7c6f11ab29b7adb7d563818332a53d..fa412a4e080d297ea71a5ee877daff86ac4ade83 100644 (file)
@@ -1623,27 +1623,26 @@ static int qca83xx_config_init(struct phy_device *phydev)
                break;
        }
 
+       /* Following original QCA sourcecode set port to prefer master */
+       phy_set_bits(phydev, MII_CTRL1000, CTL1000_PREFER_MASTER);
+
+       return 0;
+}
+
+static int qca8327_config_init(struct phy_device *phydev)
+{
        /* QCA8327 require DAC amplitude adjustment for 100m set to +6%.
         * Disable on init and enable only with 100m speed following
         * qca original source code.
         */
-       if (phydev->drv->phy_id == QCA8327_A_PHY_ID ||
-           phydev->drv->phy_id == QCA8327_B_PHY_ID)
-               at803x_debug_reg_mask(phydev, AT803X_DEBUG_ANALOG_TEST_CTRL,
-                                     QCA8327_DEBUG_MANU_CTRL_EN, 0);
+       at803x_debug_reg_mask(phydev, AT803X_DEBUG_ANALOG_TEST_CTRL,
+                             QCA8327_DEBUG_MANU_CTRL_EN, 0);
 
-       /* Following original QCA sourcecode set port to prefer master */
-       phy_set_bits(phydev, MII_CTRL1000, CTL1000_PREFER_MASTER);
-
-       return 0;
+       return qca83xx_config_init(phydev);
 }
 
 static void qca83xx_link_change_notify(struct phy_device *phydev)
 {
-       /* QCA8337 doesn't require DAC Amplitude adjustement */
-       if (phydev->drv->phy_id == QCA8337_PHY_ID)
-               return;
-
        /* Set DAC Amplitude adjustment to +6% for 100m on link running */
        if (phydev->state == PHY_RUNNING) {
                if (phydev->speed == SPEED_100)
@@ -1686,19 +1685,6 @@ static int qca83xx_resume(struct phy_device *phydev)
 
 static int qca83xx_suspend(struct phy_device *phydev)
 {
-       u16 mask = 0;
-
-       /* Only QCA8337 support actual suspend.
-        * QCA8327 cause port unreliability when phy suspend
-        * is set.
-        */
-       if (phydev->drv->phy_id == QCA8337_PHY_ID) {
-               genphy_suspend(phydev);
-       } else {
-               mask |= ~(BMCR_SPEED1000 | BMCR_FULLDPLX);
-               phy_modify(phydev, MII_BMCR, mask, 0);
-       }
-
        at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_GREEN,
                              AT803X_DEBUG_GATE_CLK_IN1000, 0);
 
@@ -1709,6 +1695,27 @@ static int qca83xx_suspend(struct phy_device *phydev)
        return 0;
 }
 
+static int qca8337_suspend(struct phy_device *phydev)
+{
+       /* Only QCA8337 support actual suspend. */
+       genphy_suspend(phydev);
+
+       return qca83xx_suspend(phydev);
+}
+
+static int qca8327_suspend(struct phy_device *phydev)
+{
+       u16 mask = 0;
+
+       /* QCA8327 cause port unreliability when phy suspend
+        * is set.
+        */
+       mask |= ~(BMCR_SPEED1000 | BMCR_FULLDPLX);
+       phy_modify(phydev, MII_BMCR, mask, 0);
+
+       return qca83xx_suspend(phydev);
+}
+
 static int qca808x_phy_fast_retrain_config(struct phy_device *phydev)
 {
        int ret;
@@ -2170,7 +2177,6 @@ static struct phy_driver at803x_driver[] = {
        .phy_id_mask            = QCA8K_PHY_ID_MASK,
        .name                   = "Qualcomm Atheros 8337 internal PHY",
        /* PHY_GBIT_FEATURES */
-       .link_change_notify     = qca83xx_link_change_notify,
        .probe                  = at803x_probe,
        .flags                  = PHY_IS_INTERNAL,
        .config_init            = qca83xx_config_init,
@@ -2178,7 +2184,7 @@ static struct phy_driver at803x_driver[] = {
        .get_sset_count         = qca83xx_get_sset_count,
        .get_strings            = qca83xx_get_strings,
        .get_stats              = qca83xx_get_stats,
-       .suspend                = qca83xx_suspend,
+       .suspend                = qca8337_suspend,
        .resume                 = qca83xx_resume,
 }, {
        /* QCA8327-A from switch QCA8327-AL1A */
@@ -2189,12 +2195,12 @@ static struct phy_driver at803x_driver[] = {
        .link_change_notify     = qca83xx_link_change_notify,
        .probe                  = at803x_probe,
        .flags                  = PHY_IS_INTERNAL,
-       .config_init            = qca83xx_config_init,
+       .config_init            = qca8327_config_init,
        .soft_reset             = genphy_soft_reset,
        .get_sset_count         = qca83xx_get_sset_count,
        .get_strings            = qca83xx_get_strings,
        .get_stats              = qca83xx_get_stats,
-       .suspend                = qca83xx_suspend,
+       .suspend                = qca8327_suspend,
        .resume                 = qca83xx_resume,
 }, {
        /* QCA8327-B from switch QCA8327-BL1A */
@@ -2205,12 +2211,12 @@ static struct phy_driver at803x_driver[] = {
        .link_change_notify     = qca83xx_link_change_notify,
        .probe                  = at803x_probe,
        .flags                  = PHY_IS_INTERNAL,
-       .config_init            = qca83xx_config_init,
+       .config_init            = qca8327_config_init,
        .soft_reset             = genphy_soft_reset,
        .get_sset_count         = qca83xx_get_sset_count,
        .get_strings            = qca83xx_get_strings,
        .get_stats              = qca83xx_get_stats,
-       .suspend                = qca83xx_suspend,
+       .suspend                = qca8327_suspend,
        .resume                 = qca83xx_resume,
 }, {
        /* Qualcomm QCA8081 */