]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
mdio: Remove mdio45_ethtool_gset_npage()
authorAlistair Francis <alistair.francis@wdc.com>
Tue, 12 Nov 2024 10:54:30 +0000 (20:54 +1000)
committerJakub Kicinski <kuba@kernel.org>
Fri, 15 Nov 2024 03:08:55 +0000 (19:08 -0800)
The mdio45_ethtool_gset_npage() function isn't called, so let's remove
it.

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Link: https://patch.msgid.link/20241112105430.438491-2-alistair@alistair23.me
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/mdio.c
include/linux/mdio.h

index e08c90ac0c6efadbdee7ffe59b95a4f03ad3e85e..f67a4d4005e7f7e69275b3d6fb5ac150bfd87b5d 100644 (file)
@@ -166,178 +166,6 @@ static u32 mdio45_get_an(const struct mdio_if_info *mdio, u16 addr)
        return result;
 }
 
-/**
- * mdio45_ethtool_gset_npage - get settings for ETHTOOL_GSET
- * @mdio: MDIO interface
- * @ecmd: Ethtool request structure
- * @npage_adv: Modes currently advertised on next pages
- * @npage_lpa: Modes advertised by link partner on next pages
- *
- * The @ecmd parameter is expected to have been cleared before calling
- * mdio45_ethtool_gset_npage().
- *
- * Since the CSRs for auto-negotiation using next pages are not fully
- * standardised, this function does not attempt to decode them.  The
- * caller must pass them in.
- */
-void mdio45_ethtool_gset_npage(const struct mdio_if_info *mdio,
-                              struct ethtool_cmd *ecmd,
-                              u32 npage_adv, u32 npage_lpa)
-{
-       int reg;
-       u32 speed;
-
-       BUILD_BUG_ON(MDIO_SUPPORTS_C22 != ETH_MDIO_SUPPORTS_C22);
-       BUILD_BUG_ON(MDIO_SUPPORTS_C45 != ETH_MDIO_SUPPORTS_C45);
-
-       ecmd->transceiver = XCVR_INTERNAL;
-       ecmd->phy_address = mdio->prtad;
-       ecmd->mdio_support =
-               mdio->mode_support & (MDIO_SUPPORTS_C45 | MDIO_SUPPORTS_C22);
-
-       reg = mdio->mdio_read(mdio->dev, mdio->prtad, MDIO_MMD_PMAPMD,
-                             MDIO_CTRL2);
-       switch (reg & MDIO_PMA_CTRL2_TYPE) {
-       case MDIO_PMA_CTRL2_10GBT:
-       case MDIO_PMA_CTRL2_1000BT:
-       case MDIO_PMA_CTRL2_100BTX:
-       case MDIO_PMA_CTRL2_10BT:
-               ecmd->port = PORT_TP;
-               ecmd->supported = SUPPORTED_TP;
-               reg = mdio->mdio_read(mdio->dev, mdio->prtad, MDIO_MMD_PMAPMD,
-                                     MDIO_SPEED);
-               if (reg & MDIO_SPEED_10G)
-                       ecmd->supported |= SUPPORTED_10000baseT_Full;
-               if (reg & MDIO_PMA_SPEED_1000)
-                       ecmd->supported |= (SUPPORTED_1000baseT_Full |
-                                           SUPPORTED_1000baseT_Half);
-               if (reg & MDIO_PMA_SPEED_100)
-                       ecmd->supported |= (SUPPORTED_100baseT_Full |
-                                           SUPPORTED_100baseT_Half);
-               if (reg & MDIO_PMA_SPEED_10)
-                       ecmd->supported |= (SUPPORTED_10baseT_Full |
-                                           SUPPORTED_10baseT_Half);
-               ecmd->advertising = ADVERTISED_TP;
-               break;
-
-       case MDIO_PMA_CTRL2_10GBCX4:
-               ecmd->port = PORT_OTHER;
-               ecmd->supported = 0;
-               ecmd->advertising = 0;
-               break;
-
-       case MDIO_PMA_CTRL2_10GBKX4:
-       case MDIO_PMA_CTRL2_10GBKR:
-       case MDIO_PMA_CTRL2_1000BKX:
-               ecmd->port = PORT_OTHER;
-               ecmd->supported = SUPPORTED_Backplane;
-               reg = mdio->mdio_read(mdio->dev, mdio->prtad, MDIO_MMD_PMAPMD,
-                                     MDIO_PMA_EXTABLE);
-               if (reg & MDIO_PMA_EXTABLE_10GBKX4)
-                       ecmd->supported |= SUPPORTED_10000baseKX4_Full;
-               if (reg & MDIO_PMA_EXTABLE_10GBKR)
-                       ecmd->supported |= SUPPORTED_10000baseKR_Full;
-               if (reg & MDIO_PMA_EXTABLE_1000BKX)
-                       ecmd->supported |= SUPPORTED_1000baseKX_Full;
-               reg = mdio->mdio_read(mdio->dev, mdio->prtad, MDIO_MMD_PMAPMD,
-                                     MDIO_PMA_10GBR_FECABLE);
-               if (reg & MDIO_PMA_10GBR_FECABLE_ABLE)
-                       ecmd->supported |= SUPPORTED_10000baseR_FEC;
-               ecmd->advertising = ADVERTISED_Backplane;
-               break;
-
-       /* All the other defined modes are flavours of optical */
-       default:
-               ecmd->port = PORT_FIBRE;
-               ecmd->supported = SUPPORTED_FIBRE;
-               ecmd->advertising = ADVERTISED_FIBRE;
-               break;
-       }
-
-       if (mdio->mmds & MDIO_DEVS_AN) {
-               ecmd->supported |= SUPPORTED_Autoneg;
-               reg = mdio->mdio_read(mdio->dev, mdio->prtad, MDIO_MMD_AN,
-                                     MDIO_CTRL1);
-               if (reg & MDIO_AN_CTRL1_ENABLE) {
-                       ecmd->autoneg = AUTONEG_ENABLE;
-                       ecmd->advertising |=
-                               ADVERTISED_Autoneg |
-                               mdio45_get_an(mdio, MDIO_AN_ADVERTISE) |
-                               npage_adv;
-               } else {
-                       ecmd->autoneg = AUTONEG_DISABLE;
-               }
-       } else {
-               ecmd->autoneg = AUTONEG_DISABLE;
-       }
-
-       if (ecmd->autoneg) {
-               u32 modes = 0;
-               int an_stat = mdio->mdio_read(mdio->dev, mdio->prtad,
-                                             MDIO_MMD_AN, MDIO_STAT1);
-
-               /* If AN is complete and successful, report best common
-                * mode, otherwise report best advertised mode. */
-               if (an_stat & MDIO_AN_STAT1_COMPLETE) {
-                       ecmd->lp_advertising =
-                               mdio45_get_an(mdio, MDIO_AN_LPA) | npage_lpa;
-                       if (an_stat & MDIO_AN_STAT1_LPABLE)
-                               ecmd->lp_advertising |= ADVERTISED_Autoneg;
-                       modes = ecmd->advertising & ecmd->lp_advertising;
-               }
-               if ((modes & ~ADVERTISED_Autoneg) == 0)
-                       modes = ecmd->advertising;
-
-               if (modes & (ADVERTISED_10000baseT_Full |
-                            ADVERTISED_10000baseKX4_Full |
-                            ADVERTISED_10000baseKR_Full)) {
-                       speed = SPEED_10000;
-                       ecmd->duplex = DUPLEX_FULL;
-               } else if (modes & (ADVERTISED_1000baseT_Full |
-                                   ADVERTISED_1000baseT_Half |
-                                   ADVERTISED_1000baseKX_Full)) {
-                       speed = SPEED_1000;
-                       ecmd->duplex = !(modes & ADVERTISED_1000baseT_Half);
-               } else if (modes & (ADVERTISED_100baseT_Full |
-                                   ADVERTISED_100baseT_Half)) {
-                       speed = SPEED_100;
-                       ecmd->duplex = !!(modes & ADVERTISED_100baseT_Full);
-               } else {
-                       speed = SPEED_10;
-                       ecmd->duplex = !!(modes & ADVERTISED_10baseT_Full);
-               }
-       } else {
-               /* Report forced settings */
-               reg = mdio->mdio_read(mdio->dev, mdio->prtad, MDIO_MMD_PMAPMD,
-                                     MDIO_CTRL1);
-               speed = (((reg & MDIO_PMA_CTRL1_SPEED1000) ? 100 : 1)
-                        * ((reg & MDIO_PMA_CTRL1_SPEED100) ? 100 : 10));
-               ecmd->duplex = (reg & MDIO_CTRL1_FULLDPLX ||
-                               speed == SPEED_10000);
-       }
-
-       ethtool_cmd_speed_set(ecmd, speed);
-
-       /* 10GBASE-T MDI/MDI-X */
-       if (ecmd->port == PORT_TP
-           && (ethtool_cmd_speed(ecmd) == SPEED_10000)) {
-               switch (mdio->mdio_read(mdio->dev, mdio->prtad, MDIO_MMD_PMAPMD,
-                                       MDIO_PMA_10GBT_SWAPPOL)) {
-               case MDIO_PMA_10GBT_SWAPPOL_ABNX | MDIO_PMA_10GBT_SWAPPOL_CDNX:
-                       ecmd->eth_tp_mdix = ETH_TP_MDI;
-                       break;
-               case 0:
-                       ecmd->eth_tp_mdix = ETH_TP_MDI_X;
-                       break;
-               default:
-                       /* It's complicated... */
-                       ecmd->eth_tp_mdix = ETH_TP_MDI_INVALID;
-                       break;
-               }
-       }
-}
-EXPORT_SYMBOL(mdio45_ethtool_gset_npage);
-
 /**
  * mdio45_ethtool_ksettings_get_npage - get settings for ETHTOOL_GLINKSETTINGS
  * @mdio: MDIO interface
index c63f43645d50d34ce10d18fd3060e4607134fefa..3c3deac57894efdc1cb0e38dab6b817cbb5ac920 100644 (file)
@@ -165,9 +165,6 @@ extern int mdio_set_flag(const struct mdio_if_info *mdio,
                         bool sense);
 extern int mdio45_links_ok(const struct mdio_if_info *mdio, u32 mmds);
 extern int mdio45_nway_restart(const struct mdio_if_info *mdio);
-extern void mdio45_ethtool_gset_npage(const struct mdio_if_info *mdio,
-                                     struct ethtool_cmd *ecmd,
-                                     u32 npage_adv, u32 npage_lpa);
 extern void
 mdio45_ethtool_ksettings_get_npage(const struct mdio_if_info *mdio,
                                   struct ethtool_link_ksettings *cmd,