Skip to contentSkip to conversation

Remove some unused phylink legacy

PATCH Applied Russell King (Oracle) 5 participants 10 messages Jul 14, 2023 – Jul 18, 2023

Subsystems (13)
lore
Share & tools
lore

Russell King (Oracle)

author maintainer
#0 lore raw

cover Remove some unused phylink legacy

Hi,

I believe we are now in a position where some of the legacy phylink code can be removed!

I believe that all DSA drivers do not make use of any pre-March 2020 phylink behaviour - all drivers now seem to set legacy_pre_march2020 to false, and the conditions that DSA sets it to true are no longer satisifed by any driver.

Moreover, no one uses the .mac_an_restart() method, so this can also be removed.

 drivers/net/dsa/b53/b53_common.c       |  6 -----
 drivers/net/dsa/lan9303-core.c         |  6 -----
 drivers/net/dsa/microchip/ksz_common.c |  2 --
 drivers/net/dsa/mt7530.c               |  6 -----
 drivers/net/dsa/mv88e6xxx/chip.c       |  4 ----
 drivers/net/dsa/ocelot/felix.c         |  6 -----
 drivers/net/dsa/qca/qca8k-8xxx.c       |  2 --
 drivers/net/dsa/sja1105/sja1105_main.c |  6 -----
 drivers/net/phy/phylink.c              | 22 ++++++++----------
 include/linux/phylink.h                | 12 ----------
 include/net/dsa.h                      |  3 ---
 net/dsa/port.c                         | 41 ----------------------------------
 12 files changed, 9 insertions(+), 107 deletions(-)
Signature · 2 lines
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
#1 lore raw

PATCH 1/3 net: dsa: remove legacy_pre_march2020 detection

All drivers are now updated for the March 2020 changes, and no longer make use of the mac_pcs_get_state() or mac_an_restart() operations, which are now NULL across all DSA drivers. All DSA drivers don't look at speed, duplex, pause or advertisement in their phylink_mac_config() method either.

Remove support for these operations from DSA, and stop marking DSA as a legacy driver by default.

---
 include/net/dsa.h |  3 ---
 net/dsa/port.c    | 41 -----------------------------------------
 2 files changed, 44 deletions(-)
include/net/dsa.h +0 -3
index d309ee7ed04b..0b9c6aa27047 100644
@@ -873,8 +873,6 @@ struct dsa_switch_ops {
 	struct phylink_pcs *(*phylink_mac_select_pcs)(struct dsa_switch *ds,
 						      int port,
 						      phy_interface_t iface);
-	int	(*phylink_mac_link_state)(struct dsa_switch *ds, int port,
-					  struct phylink_link_state *state);
 	int	(*phylink_mac_prepare)(struct dsa_switch *ds, int port,
 				       unsigned int mode,
 				       phy_interface_t interface);
@@ -884,7 +882,6 @@ struct dsa_switch_ops {
 	int	(*phylink_mac_finish)(struct dsa_switch *ds, int port,
 				      unsigned int mode,
 				      phy_interface_t interface);
-	void	(*phylink_mac_an_restart)(struct dsa_switch *ds, int port);
 	void	(*phylink_mac_link_down)(struct dsa_switch *ds, int port,
 					 unsigned int mode,
 					 phy_interface_t interface);
net/dsa/port.c +0 -41

68 lines not on this page · raw message

Signature · 1 line
2.30.2
#4 lore raw

PATCH 2/3 net: dsa: remove legacy_pre_march2020 from drivers

In reply to Russell King (Oracle)

Since DSA no longer marks anything as phylink-legacy, there is now no need for DSA drivers to set this member to false. Remove all instances of this.

---
 drivers/net/dsa/b53/b53_common.c       | 6 ------
 drivers/net/dsa/lan9303-core.c         | 6 ------
 drivers/net/dsa/microchip/ksz_common.c | 2 --
 drivers/net/dsa/mt7530.c               | 6 ------
 drivers/net/dsa/mv88e6xxx/chip.c       | 4 ----
 drivers/net/dsa/ocelot/felix.c         | 6 ------
 drivers/net/dsa/qca/qca8k-8xxx.c       | 2 --
 drivers/net/dsa/sja1105/sja1105_main.c | 6 ------
 8 files changed, 38 deletions(-)
drivers/net/dsa/b53/b53_common.c +0 -6
index 3464ce5e7470..4e27dc913cf7 100644
@@ -1393,12 +1393,6 @@ static void b53_phylink_get_caps(struct dsa_switch *ds, int port,
 	/* Get the implementation specific capabilities */
 	if (dev->ops->phylink_get_caps)
 		dev->ops->phylink_get_caps(dev, port, config);
-
-	/* This driver does not make use of the speed, duplex, pause or the
-	 * advertisement in its mac_config, so it is safe to mark this driver
-	 * as non-legacy.
-	 */
-	config->legacy_pre_march2020 = false;
 }
 
 static struct phylink_pcs *b53_phylink_mac_select_pcs(struct dsa_switch *ds,
drivers/net/dsa/lan9303-core.c +0 -6
index ff76444057d2..b0da1e4de63c 100644
@@ -1290,12 +1290,6 @@ static void lan9303_phylink_get_caps(struct dsa_switch *ds, int port,
 		__set_bit(PHY_INTERFACE_MODE_GMII,
 			  config->supported_interfaces);
 	}
-
-	/* This driver does not make use of the speed, duplex, pause or the
-	 * advertisement in its mac_config, so it is safe to mark this driver
-	 * as non-legacy.
-	 */
-	config->legacy_pre_march2020 = false;
 }
 
 static void lan9303_phylink_mac_link_up(struct dsa_switch *ds, int port,
drivers/net/dsa/microchip/ksz_common.c +0 -2
index 813b91a816bb..07ba2b54ab99 100644
@@ -1624,8 +1624,6 @@ static void ksz_phylink_get_caps(struct dsa_switch *ds, int port,
 {
 	struct ksz_device *dev = ds->priv;
 
-	config->legacy_pre_march2020 = false;
-
 	if (dev->info->supports_mii[port])
 		__set_bit(PHY_INTERFACE_MODE_MII, config->supported_interfaces);
 
drivers/net/dsa/mt7530.c +0 -6
index 38b3c6dda386..8fbda739c1b3 100644
@@ -2949,12 +2949,6 @@ static void mt753x_phylink_get_caps(struct dsa_switch *ds, int port,
 	config->mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
 				   MAC_10 | MAC_100 | MAC_1000FD;
 
-	/* This driver does not make use of the speed, duplex, pause or the
-	 * advertisement in its mac_config, so it is safe to mark this driver
-	 * as non-legacy.
-	 */
-	config->legacy_pre_march2020 = false;
-
 	priv->info->mac_port_get_caps(ds, port, config);
 }
 
drivers/net/dsa/mv88e6xxx/chip.c +0 -4
index 6174855188d9..8dd82fd87fc6 100644
@@ -769,10 +769,6 @@ static void mv88e6xxx_get_caps(struct dsa_switch *ds, int port,
 		__set_bit(PHY_INTERFACE_MODE_GMII,
 			  config->supported_interfaces);
 	}
-
-	/* If we have a .pcs_init, we are not legacy. */
-	if (chip->info->ops->pcs_ops)
-		config->legacy_pre_march2020 = false;
 }
 
 static struct phylink_pcs *mv88e6xxx_mac_select_pcs(struct dsa_switch *ds,
drivers/net/dsa/ocelot/felix.c +0 -6
index 8da46d284e35..fd7eb4a52918 100644
@@ -1042,12 +1042,6 @@ static void felix_phylink_get_caps(struct dsa_switch *ds, int port,
 {
 	struct ocelot *ocelot = ds->priv;
 
-	/* This driver does not make use of the speed, duplex, pause or the
-	 * advertisement in its mac_config, so it is safe to mark this driver
-	 * as non-legacy.
-	 */
-	config->legacy_pre_march2020 = false;
-
 	config->mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
 				   MAC_10 | MAC_100 | MAC_1000FD |
 				   MAC_2500FD;
drivers/net/dsa/qca/qca8k-8xxx.c +0 -2
index 09b80644c11b..27bf58e40be6 100644
@@ -1397,8 +1397,6 @@ static void qca8k_phylink_get_caps(struct dsa_switch *ds, int port,
 
 	config->mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
 		MAC_10 | MAC_100 | MAC_1000FD;
-
-	config->legacy_pre_march2020 = false;
 }
 
 static void
drivers/net/dsa/sja1105/sja1105_main.c +0 -6
index 3529a565b4aa..52dd52d6c43d 100644
@@ -1396,12 +1396,6 @@ static void sja1105_phylink_get_caps(struct dsa_switch *ds, int port,
 	struct sja1105_xmii_params_entry *mii;
 	phy_interface_t phy_mode;
 
-	/* This driver does not make use of the speed, duplex, pause or the
-	 * advertisement in its mac_config, so it is safe to mark this driver
-	 * as non-legacy.
-	 */
-	config->legacy_pre_march2020 = false;
-
 	phy_mode = priv->phy_mode[port];
 	if (phy_mode == PHY_INTERFACE_MODE_SGMII ||
 	    phy_mode == PHY_INTERFACE_MODE_2500BASEX) {
Signature · 1 line
2.30.2
#7 lore raw

PATCH 3/3 net: phylink: remove legacy mac_an_restart() method

In reply to Russell King (Oracle)

The mac_an_restart() method is now completely unused, and has been superseded by phylink_pcs support. Remove this method.

Since phylink_pcs_mac_an_restart() now only deals with the PCS, rename the function to remove the _mac infix.

---
 drivers/net/phy/phylink.c | 22 +++++++++-------------
 include/linux/phylink.h   | 12 ------------
 2 files changed, 9 insertions(+), 25 deletions(-)
drivers/net/phy/phylink.c +9 -13
index 71b1012ef3be..f07e496319b4 100644
@@ -1079,17 +1079,13 @@ static void phylink_mac_config(struct phylink *pl,
 	pl->mac_ops->mac_config(pl->config, pl->cur_link_an_mode, state);
 }
 
-static void phylink_mac_pcs_an_restart(struct phylink *pl)
+static void phylink_pcs_an_restart(struct phylink *pl)
 {
-	if (linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
-			      pl->link_config.advertising) &&
+	if (pl->pcs && linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
+					 pl->link_config.advertising) &&
 	    phy_interface_mode_is_8023z(pl->link_config.interface) &&
-	    phylink_autoneg_inband(pl->cur_link_an_mode)) {
-		if (pl->pcs)
-			pl->pcs->ops->pcs_an_restart(pl->pcs);
-		else if (pl->config->legacy_pre_march2020)
-			pl->mac_ops->mac_an_restart(pl->config);
-	}
+	    phylink_autoneg_inband(pl->cur_link_an_mode))
+		pl->pcs->ops->pcs_an_restart(pl->pcs);
 }
 
 static void phylink_major_config(struct phylink *pl, bool restart,
@@ -1169,7 +1165,7 @@ static void phylink_major_config(struct phylink *pl, bool restart,
 		restart = true;
 
 	if (restart)
-		phylink_mac_pcs_an_restart(pl);
+		phylink_pcs_an_restart(pl);
 
 	if (pl->mac_ops->mac_finish) {
 		err = pl->mac_ops->mac_finish(pl->config, pl->cur_link_an_mode,
@@ -1205,7 +1201,7 @@ static int phylink_change_inband_advert(struct phylink *pl)
 	if (!pl->pcs && pl->config->legacy_pre_march2020) {
 		/* Legacy method */
 		phylink_mac_config(pl, &pl->link_config);
-		phylink_mac_pcs_an_restart(pl);
+		phylink_pcs_an_restart(pl);
 		return 0;
 	}
 
@@ -1234,7 +1230,7 @@ static int phylink_change_inband_advert(struct phylink *pl)
 		return ret;
 
 	if (ret > 0)
-		phylink_mac_pcs_an_restart(pl);
+		phylink_pcs_an_restart(pl);
 
 	return 0;
 }
@@ -2533,7 +2529,7 @@ int phylink_ethtool_nway_reset(struct phylink *pl)
 
 	if (pl->phydev)
 		ret = phy_restart_aneg(pl->phydev);
-	phylink_mac_pcs_an_restart(pl);
+	phylink_pcs_an_restart(pl);
 
 	return ret;
 }
include/linux/phylink.h +0 -12
index b28aa3eef7d5..9e861c8316d0 100644
@@ -234,7 +234,6 @@ struct phylink_config {
  * @mac_prepare: prepare for a major reconfiguration of the interface.
  * @mac_config: configure the MAC for the selected mode and state.
  * @mac_finish: finish a major reconfiguration of the interface.
- * @mac_an_restart: restart 802.3z BaseX autonegotiation.
  * @mac_link_down: take the link down.
  * @mac_link_up: allow the link to come up.
  *
@@ -254,7 +253,6 @@ struct phylink_mac_ops {
 			   const struct phylink_link_state *state);
 	int (*mac_finish)(struct phylink_config *config, unsigned int mode,
 			  phy_interface_t iface);
-	void (*mac_an_restart)(struct phylink_config *config);
 	void (*mac_link_down)(struct phylink_config *config, unsigned int mode,
 			      phy_interface_t interface);
 	void (*mac_link_up)(struct phylink_config *config,
@@ -459,16 +457,6 @@ void mac_config(struct phylink_config *config, unsigned int mode,
 int mac_finish(struct phylink_config *config, unsigned int mode,
 		phy_interface_t iface);
 
-/**
- * mac_an_restart() - restart 802.3z BaseX autonegotiation
- * @config: a pointer to a &struct phylink_config.
- *
- * Note: This is a legacy method. This function will not be called unless
- * legacy_pre_march2020 is set in &struct phylink_config and there is no
- * PCS attached.
- */
-void mac_an_restart(struct phylink_config *config);
-
 /**
  * mac_link_down() - take the link down
  * @config: a pointer to a &struct phylink_config.
Signature · 1 line
2.30.2
maintainer Reviewed-by on v1 1/3
#2 lore raw

Re: [PATCH net-next 1/3] net: dsa: remove legacy_pre_march2020 detection

In reply to Russell King (Oracle)
Quoted 10 lines · Russell King (Oracle)

All drivers are now updated for the March 2020 changes, and no longer make use of the mac_pcs_get_state() or mac_an_restart() operations, which are now NULL across all DSA drivers. All DSA drivers don't look at speed, duplex, pause or advertisement in their phylink_mac_config() method either.

Remove support for these operations from DSA, and stop marking DSA as a legacy driver by default.

Signature · 1 line
Florian
maintainer Reviewed-by on v1 2/3
#5 lore raw

Re: [PATCH net-next 2/3] net: dsa: remove legacy_pre_march2020 from drivers

In reply to Russell King (Oracle)
Quoted 5 lines · Russell King (Oracle)

Since DSA no longer marks anything as phylink-legacy, there is now no need for DSA drivers to set this member to false. Remove all instances of this.

Signature · 1 line
Florian
maintainer Reviewed-by on v1 3/3
#8 lore raw

Re: [PATCH net-next 3/3] net: phylink: remove legacy mac_an_restart() method

In reply to Russell King (Oracle)
Quoted 7 lines · Russell King (Oracle)

The mac_an_restart() method is now completely unused, and has been superseded by phylink_pcs support. Remove this method.

Since phylink_pcs_mac_an_restart() now only deals with the PCS, rename the function to remove the _mac infix.

Signature · 1 line
Florian
maintainer Reviewed-by on v1 1/3
#3 lore raw

Re: [PATCH net-next 1/3] net: dsa: remove legacy_pre_march2020 detection

In reply to Russell King (Oracle)
Quoted 11 lines · Russell King (Oracle)

All drivers are now updated for the March 2020 changes, and no longer make use of the mac_pcs_get_state() or mac_an_restart() operations, which are now NULL across all DSA drivers. All DSA drivers don't look at speed, duplex, pause or advertisement in their phylink_mac_config() method either.

Remove support for these operations from DSA, and stop marking DSA as a legacy driver by default.

---

_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

maintainer Reviewed-by on v1 2/3
#6 lore raw

Re: [PATCH net-next 2/3] net: dsa: remove legacy_pre_march2020 from drivers

In reply to Russell King (Oracle)
Quoted 6 lines · Russell King (Oracle)

Since DSA no longer marks anything as phylink-legacy, there is now no need for DSA drivers to set this member to false. Remove all instances of this.

---

_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#9 lore raw
In reply to Russell King (Oracle)
This series was applied to netdev/net-next.git (main) by Paolo Abeni <[email protected]>:

Hello:

This series was applied to netdev/net-next.git (main) by Paolo Abeni <[email protected]>:

Quoted 11 lines · On Fri, 14 Jul 2023 10:11:31 +0100 you wrote:

Hi,

I believe we are now in a position where some of the legacy phylink code can be removed!

I believe that all DSA drivers do not make use of any pre-March 2020 phylink behaviour - all drivers now seem to set legacy_pre_march2020 to false, and the conditions that DSA sets it to true are no longer satisifed by any driver.

[...]

Here is the summary with links:
- [net-next,1/3] net: dsa: remove legacy_pre_march2020 detection

    https://git.kernel.org/netdev/net-next/c/a88dd7538461
  - [net-next,2/3] net: dsa: remove legacy_pre_march2020 from drivers
    https://git.kernel.org/netdev/net-next/c/8f42c07fb0f2
  - [net-next,3/3] net: phylink: remove legacy mac_an_restart() method
    https://git.kernel.org/netdev/net-next/c/76226787e137

You are awesome, thank you!

Signature · 2 lines
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html