net: dsa: remove obsolete phylink dsa_switch operations
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Thu, 3 Oct 2024 11:52:17 +0000 (12:52 +0100)
committerJakub Kicinski <kuba@kernel.org>
Mon, 7 Oct 2024 23:23:10 +0000 (16:23 -0700)
No driver now uses the DSA switch phylink members, so we can now remove
the method pointers, but we need to leave empty shim functions to allow
those drivers that do not provide phylink MAC operations structure to
continue functioning.

Signed-off-by: Russell King (oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Tested-by: Vladimir Oltean <vladimir.oltean@nxp.com> # sja1105, felix, dsa_loop
Link: https://patch.msgid.link/E1swKNV-0060oN-1b@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/dsa.h
net/dsa/dsa.c
net/dsa/port.c

index d7a6c2930277ea106d9c33b7cf29f08436b5333b..72ae65e7246a7c094c50e3f88c12dfdec7631fb7 100644 (file)
@@ -885,21 +885,6 @@ struct dsa_switch_ops {
         */
        void    (*phylink_get_caps)(struct dsa_switch *ds, int port,
                                    struct phylink_config *config);
-       struct phylink_pcs *(*phylink_mac_select_pcs)(struct dsa_switch *ds,
-                                                     int port,
-                                                     phy_interface_t iface);
-       void    (*phylink_mac_config)(struct dsa_switch *ds, int port,
-                                     unsigned int mode,
-                                     const struct phylink_link_state *state);
-       void    (*phylink_mac_link_down)(struct dsa_switch *ds, int port,
-                                        unsigned int mode,
-                                        phy_interface_t interface);
-       void    (*phylink_mac_link_up)(struct dsa_switch *ds, int port,
-                                      unsigned int mode,
-                                      phy_interface_t interface,
-                                      struct phy_device *phydev,
-                                      int speed, int duplex,
-                                      bool tx_pause, bool rx_pause);
        void    (*phylink_fixed_state)(struct dsa_switch *ds, int port,
                                       struct phylink_link_state *state);
        /*
index 1664547deffd07361148df72c27440d939747116..5a7c0e565a894545ee14f0e0186ed3c46b809b16 100644 (file)
@@ -1505,14 +1505,6 @@ static int dsa_switch_probe(struct dsa_switch *ds)
        if (!ds->num_ports)
                return -EINVAL;
 
-       if (ds->phylink_mac_ops) {
-               if (ds->ops->phylink_mac_select_pcs ||
-                   ds->ops->phylink_mac_config ||
-                   ds->ops->phylink_mac_link_down ||
-                   ds->ops->phylink_mac_link_up)
-                       return -EINVAL;
-       }
-
        if (np) {
                err = dsa_switch_parse_of(ds, np);
                if (err)
index 25258b33e59e015db7c4be9a7d403e318b21af71..f1e96706a7012b00f10372ebeab4f5e82f149cf9 100644 (file)
@@ -1579,40 +1579,19 @@ static struct phylink_pcs *
 dsa_port_phylink_mac_select_pcs(struct phylink_config *config,
                                phy_interface_t interface)
 {
-       struct dsa_port *dp = dsa_phylink_to_port(config);
-       struct phylink_pcs *pcs = ERR_PTR(-EOPNOTSUPP);
-       struct dsa_switch *ds = dp->ds;
-
-       if (ds->ops->phylink_mac_select_pcs)
-               pcs = ds->ops->phylink_mac_select_pcs(ds, dp->index, interface);
-
-       return pcs;
+       return ERR_PTR(-EOPNOTSUPP);
 }
 
 static void dsa_port_phylink_mac_config(struct phylink_config *config,
                                        unsigned int mode,
                                        const struct phylink_link_state *state)
 {
-       struct dsa_port *dp = dsa_phylink_to_port(config);
-       struct dsa_switch *ds = dp->ds;
-
-       if (!ds->ops->phylink_mac_config)
-               return;
-
-       ds->ops->phylink_mac_config(ds, dp->index, mode, state);
 }
 
 static void dsa_port_phylink_mac_link_down(struct phylink_config *config,
                                           unsigned int mode,
                                           phy_interface_t interface)
 {
-       struct dsa_port *dp = dsa_phylink_to_port(config);
-       struct dsa_switch *ds = dp->ds;
-
-       if (!ds->ops->phylink_mac_link_down)
-               return;
-
-       ds->ops->phylink_mac_link_down(ds, dp->index, mode, interface);
 }
 
 static void dsa_port_phylink_mac_link_up(struct phylink_config *config,
@@ -1622,14 +1601,6 @@ static void dsa_port_phylink_mac_link_up(struct phylink_config *config,
                                         int speed, int duplex,
                                         bool tx_pause, bool rx_pause)
 {
-       struct dsa_port *dp = dsa_phylink_to_port(config);
-       struct dsa_switch *ds = dp->ds;
-
-       if (!ds->ops->phylink_mac_link_up)
-               return;
-
-       ds->ops->phylink_mac_link_up(ds, dp->index, mode, interface, phydev,
-                                    speed, duplex, tx_pause, rx_pause);
 }
 
 static const struct phylink_mac_ops dsa_port_phylink_mac_ops = {
@@ -1871,9 +1842,6 @@ static void dsa_shared_port_link_down(struct dsa_port *dp)
        if (ds->phylink_mac_ops && ds->phylink_mac_ops->mac_link_down)
                ds->phylink_mac_ops->mac_link_down(&dp->pl_config, MLO_AN_FIXED,
                                                   PHY_INTERFACE_MODE_NA);
-       else if (ds->ops->phylink_mac_link_down)
-               ds->ops->phylink_mac_link_down(ds, dp->index, MLO_AN_FIXED,
-                                              PHY_INTERFACE_MODE_NA);
 }
 
 int dsa_shared_port_link_register_of(struct dsa_port *dp)