aboutsummaryrefslogtreecommitdiffstats
path: root/net/dsa/user.c
diff options
context:
space:
mode:
authorRussell King (Oracle) <[email protected]>2024-12-10 14:18:16 +0000
committerJakub Kicinski <[email protected]>2024-12-12 04:29:38 +0000
commit9723a77318b7c0cfd06ea207e52a042f8c815318 (patch)
treec7998e32e86e371956f378facf27b7a5dce40186 /net/dsa/user.c
parentnet: dsa: remove check for dp->pl in EEE methods (diff)
downloadkernel-9723a77318b7c0cfd06ea207e52a042f8c815318.tar.gz
kernel-9723a77318b7c0cfd06ea207e52a042f8c815318.zip
net: dsa: add hook to determine whether EEE is supported
Add a hook to determine whether the switch supports EEE. This will return false if the switch does not, or true if it does. If the method is not implemented, we assume (currently) that the switch supports EEE. Signed-off-by: Russell King (Oracle) <[email protected]> Reviewed-by: Florian Fainelli <[email protected]> Reviewed-by: Vladimir Oltean <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'net/dsa/user.c')
-rw-r--r--net/dsa/user.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/net/dsa/user.c b/net/dsa/user.c
index e1a0b153c353..a74339680010 100644
--- a/net/dsa/user.c
+++ b/net/dsa/user.c
@@ -1229,6 +1229,10 @@ static int dsa_user_set_eee(struct net_device *dev, struct ethtool_keee *e)
struct dsa_switch *ds = dp->ds;
int ret;
+ /* Check whether the switch supports EEE */
+ if (ds->ops->support_eee && !ds->ops->support_eee(ds, dp->index))
+ return -EOPNOTSUPP;
+
/* Port's PHY and MAC both need to be EEE capable */
if (!dev->phydev)
return -ENODEV;
@@ -1249,6 +1253,10 @@ static int dsa_user_get_eee(struct net_device *dev, struct ethtool_keee *e)
struct dsa_switch *ds = dp->ds;
int ret;
+ /* Check whether the switch supports EEE */
+ if (ds->ops->support_eee && !ds->ops->support_eee(ds, dp->index))
+ return -EOPNOTSUPP;
+
/* Port's PHY and MAC both need to be EEE capable */
if (!dev->phydev)
return -ENODEV;