static int at803x_config_init(struct phy_device *phydev)
 {
-       struct at803x_priv *priv = phydev->priv;
        int ret;
 
-       if (phydev->drv->phy_id == ATH8031_PHY_ID) {
-               /* Some bootloaders leave the fiber page selected.
-                * Switch to the appropriate page (fiber or copper), as otherwise we
-                * read the PHY capabilities from the wrong page.
-                */
-               phy_lock_mdio_bus(phydev);
-               ret = at803x_write_page(phydev,
-                                       priv->is_fiber ? AT803X_PAGE_FIBER :
-                                                        AT803X_PAGE_COPPER);
-               phy_unlock_mdio_bus(phydev);
-               if (ret)
-                       return ret;
-
-               ret = at8031_pll_config(phydev);
-               if (ret < 0)
-                       return ret;
-       }
-
        /* The RX and TX delay default is:
         *   after HW reset: RX delay enabled and TX delay disabled
         *   after SW reset: RX delay enabled, while TX delay retains the
                              AT803X_WOL_EN, 0);
 }
 
+static int at8031_config_init(struct phy_device *phydev)
+{
+       struct at803x_priv *priv = phydev->priv;
+       int ret;
+
+       /* Some bootloaders leave the fiber page selected.
+        * Switch to the appropriate page (fiber or copper), as otherwise we
+        * read the PHY capabilities from the wrong page.
+        */
+       phy_lock_mdio_bus(phydev);
+       ret = at803x_write_page(phydev,
+                               priv->is_fiber ? AT803X_PAGE_FIBER :
+                                                AT803X_PAGE_COPPER);
+       phy_unlock_mdio_bus(phydev);
+       if (ret)
+               return ret;
+
+       ret = at8031_pll_config(phydev);
+       if (ret < 0)
+               return ret;
+
+       return at803x_config_init(phydev);
+}
+
 static int qca83xx_config_init(struct phy_device *phydev)
 {
        u8 switch_revision;
        .name                   = "Qualcomm Atheros AR8031/AR8033",
        .flags                  = PHY_POLL_CABLE_TEST,
        .probe                  = at8031_probe,
-       .config_init            = at803x_config_init,
+       .config_init            = at8031_config_init,
        .config_aneg            = at803x_config_aneg,
        .soft_reset             = genphy_soft_reset,
        .set_wol                = at803x_set_wol,