Remove some unused phylink legacy
Subsystems (13)
Russell King (Oracle)
maintainercover 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!
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
@@ -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
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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
@@ -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
@@ -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
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()ormac_an_restart()operations, which are now NULL across all DSA drivers. All DSA drivers don't look at speed, duplex, pause or advertisement in theirphylink_mac_config()method either.Remove support for these operations from DSA, and stop marking DSA as a legacy driver by default.
Signed-off-by Russell King (Oracle) <[email protected]>
Signature · 1 line
Florian
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.
Signed-off-by Russell King (Oracle) <[email protected]>
Signature · 1 line
Florian
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 byphylink_pcssupport. Remove this method.Since
phylink_pcs_mac_an_restart()now only deals with the PCS, rename the function to remove the_macinfix.Signed-off-by Russell King (Oracle) <[email protected]>
Signature · 1 line
Florian
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()ormac_an_restart()operations, which are now NULL across all DSA drivers. All DSA drivers don't look at speed, duplex, pause or advertisement in theirphylink_mac_config()method either.Remove support for these operations from DSA, and stop marking DSA as a legacy driver by default.
Signed-off-by Russell King (Oracle) <[email protected]>---
_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
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.
Signed-off-by Russell King (Oracle) <[email protected]>---
_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
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_march2020to 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