]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Sep 2025 16:58:19 +0000 (18:58 +0200)
commit c86692fc2cb77d94dd8c166c2b9017f196d02a84 upstream.

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>
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/dsa/b53/b53_common.c
drivers/net/dsa/b53/b53_priv.h
drivers/net/dsa/bcm_sf2.c

index 844cf2b8f72786e964fd3922845fbc1794e1950b..f9c1cf71b059a3f5f4d7f0dca7bdb2ce28466b85 100644 (file)
@@ -2388,13 +2388,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);
@@ -2404,9 +2407,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);
 
@@ -2463,6 +2463,7 @@ static const struct dsa_switch_ops b53_switch_ops = {
        .port_setup             = b53_setup_port,
        .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 4f8c97098d2a721fe52c45c7418afab2873fc275..e908397e8b9a012a8d4d639022f3f458e7f081aa 100644 (file)
@@ -387,6 +387,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 c4771a07878ea6857a62e37ce5ffccacd7c99399..f1372830d5fa28b0ca96b0ecdd8f0e1f58e74245 100644 (file)
@@ -1233,6 +1233,7 @@ static const struct dsa_switch_ops bcm_sf2_ops = {
        .port_setup             = b53_setup_port,
        .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,