]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
net: dsa: b53/bcm_sf2: implement .support_eee() method
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Tue, 10 Dec 2024 14:18:26 +0000 (14:18 +0000)
committerJakub Kicinski <kuba@kernel.org>
Thu, 12 Dec 2024 04:29:38 +0000 (20:29 -0800)
Implement the .support_eee() method to indicate that EEE is not
supported by two switch variants, rather than making these checks in
the .set_mac_eee() and .get_mac_eee() methods.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Link: https://patch.msgid.link/E1tL14E-006cZU-Nc@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/b53/b53_common.c
drivers/net/dsa/b53/b53_priv.h
drivers/net/dsa/bcm_sf2.c

index 285785c942b077f6538de4d762f78354ccbd86ae..0561b60f668f214cb7a4da1b491af7313bb424ac 100644 (file)
@@ -2224,13 +2224,16 @@ int b53_eee_init(struct dsa_switch *ds, int port, struct phy_device *phy)
 }
 EXPORT_SYMBOL(b53_eee_init);
 
-int b53_get_mac_eee(struct dsa_switch *ds, int port, struct ethtool_keee *e)
+bool b53_support_eee(struct dsa_switch *ds, int port)
 {
        struct b53_device *dev = ds->priv;
 
-       if (is5325(dev) || is5365(dev))
-               return -EOPNOTSUPP;
+       return !is5325(dev) && !is5365(dev);
+}
+EXPORT_SYMBOL(b53_support_eee);
 
+int b53_get_mac_eee(struct dsa_switch *ds, int port, struct ethtool_keee *e)
+{
        return 0;
 }
 EXPORT_SYMBOL(b53_get_mac_eee);
@@ -2240,9 +2243,6 @@ int b53_set_mac_eee(struct dsa_switch *ds, int port, struct ethtool_keee *e)
        struct b53_device *dev = ds->priv;
        struct ethtool_keee *p = &dev->ports[port].eee;
 
-       if (is5325(dev) || is5365(dev))
-               return -EOPNOTSUPP;
-
        p->eee_enabled = e->eee_enabled;
        b53_eee_enable_set(ds, port, e->eee_enabled);
 
@@ -2298,6 +2298,7 @@ static const struct dsa_switch_ops b53_switch_ops = {
        .phylink_get_caps       = b53_phylink_get_caps,
        .port_enable            = b53_enable_port,
        .port_disable           = b53_disable_port,
+       .support_eee            = b53_support_eee,
        .get_mac_eee            = b53_get_mac_eee,
        .set_mac_eee            = b53_set_mac_eee,
        .port_bridge_join       = b53_br_join,
index 05141176daf506d194d315e8c48747b63dab1957..99e5cfc98ae826c94351962c6196e55657870f5f 100644 (file)
@@ -384,6 +384,7 @@ int b53_enable_port(struct dsa_switch *ds, int port, struct phy_device *phy);
 void b53_disable_port(struct dsa_switch *ds, int port);
 void b53_brcm_hdr_setup(struct dsa_switch *ds, int port);
 int b53_eee_init(struct dsa_switch *ds, int port, struct phy_device *phy);
+bool b53_support_eee(struct dsa_switch *ds, int port);
 int b53_get_mac_eee(struct dsa_switch *ds, int port, struct ethtool_keee *e);
 int b53_set_mac_eee(struct dsa_switch *ds, int port, struct ethtool_keee *e);
 
index 43bde1f583ffdc72c264b45386541a07047047ce..a53fb6191e6b34a815576bcbbe1235f4b59ff266 100644 (file)
@@ -1232,6 +1232,7 @@ static const struct dsa_switch_ops bcm_sf2_ops = {
        .set_wol                = bcm_sf2_sw_set_wol,
        .port_enable            = bcm_sf2_port_setup,
        .port_disable           = bcm_sf2_port_disable,
+       .support_eee            = b53_support_eee,
        .get_mac_eee            = b53_get_mac_eee,
        .set_mac_eee            = b53_set_mac_eee,
        .port_bridge_join       = b53_br_join,