1 From c86692fc2cb77d94dd8c166c2b9017f196d02a84 Mon Sep 17 00:00:00 2001
2 From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
3 Date: Tue, 10 Dec 2024 14:18:26 +0000
4 Subject: [PATCH] net: dsa: b53/bcm_sf2: implement .support_eee() method
6 Implement the .support_eee() method to indicate that EEE is not
7 supported by two switch variants, rather than making these checks in
8 the .set_mac_eee() and .get_mac_eee() methods.
10 Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
11 Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
12 Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
13 Link: https://patch.msgid.link/E1tL14E-006cZU-Nc@rmk-PC.armlinux.org.uk
14 Signed-off-by: Jakub Kicinski <kuba@kernel.org>
16 drivers/net/dsa/b53/b53_common.c | 13 +++++++------
17 drivers/net/dsa/b53/b53_priv.h | 1 +
18 2 files changed, 8 insertions(+), 6 deletions(-)
20 --- a/drivers/net/dsa/b53/b53_common.c
21 +++ b/drivers/net/dsa/b53/b53_common.c
22 @@ -2343,13 +2343,16 @@ int b53_eee_init(struct dsa_switch *ds,
24 EXPORT_SYMBOL(b53_eee_init);
26 -int b53_get_mac_eee(struct dsa_switch *ds, int port, struct ethtool_keee *e)
27 +bool b53_support_eee(struct dsa_switch *ds, int port)
29 struct b53_device *dev = ds->priv;
31 - if (is5325(dev) || is5365(dev))
33 + return !is5325(dev) && !is5365(dev);
35 +EXPORT_SYMBOL(b53_support_eee);
37 +int b53_get_mac_eee(struct dsa_switch *ds, int port, struct ethtool_keee *e)
41 EXPORT_SYMBOL(b53_get_mac_eee);
42 @@ -2359,9 +2362,6 @@ int b53_set_mac_eee(struct dsa_switch *d
43 struct b53_device *dev = ds->priv;
44 struct ethtool_keee *p = &dev->ports[port].eee;
46 - if (is5325(dev) || is5365(dev))
49 p->eee_enabled = e->eee_enabled;
50 b53_eee_enable_set(ds, port, e->eee_enabled);
52 @@ -2418,6 +2418,7 @@ static const struct dsa_switch_ops b53_s
53 .port_setup = b53_setup_port,
54 .port_enable = b53_enable_port,
55 .port_disable = b53_disable_port,
56 + .support_eee = b53_support_eee,
57 .get_mac_eee = b53_get_mac_eee,
58 .set_mac_eee = b53_set_mac_eee,
59 .port_bridge_join = b53_br_join,
60 --- a/drivers/net/dsa/b53/b53_priv.h
61 +++ b/drivers/net/dsa/b53/b53_priv.h
62 @@ -387,6 +387,7 @@ int b53_enable_port(struct dsa_switch *d
63 void b53_disable_port(struct dsa_switch *ds, int port);
64 void b53_brcm_hdr_setup(struct dsa_switch *ds, int port);
65 int b53_eee_init(struct dsa_switch *ds, int port, struct phy_device *phy);
66 +bool b53_support_eee(struct dsa_switch *ds, int port);
67 int b53_get_mac_eee(struct dsa_switch *ds, int port, struct ethtool_keee *e);
68 int b53_set_mac_eee(struct dsa_switch *ds, int port, struct ethtool_keee *e);