diff options
author | Heiner Kallweit <hkallweit1@gmail.com> | 2019-10-30 00:32:48 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-10-31 03:42:51 +0300 |
commit | a2a1a13b81e65d20302e0e2ef84cac1f15979011 (patch) | |
tree | f58fc96cd70441ebfc78b4815a16755721efcaa8 /net/dsa | |
parent | 1d7a55267faebe3e16c0748b2beafe53cfab9f70 (diff) | |
download | linux-a2a1a13b81e65d20302e0e2ef84cac1f15979011.tar.xz |
net: dsa: add ethtool pause configuration support
This patch adds glue logic to make pause settings per port
configurable vie ethtool.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dsa')
-rw-r--r-- | net/dsa/slave.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 75d58229a4bd..750b376f4a06 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -789,6 +789,22 @@ static int dsa_slave_set_link_ksettings(struct net_device *dev, return phylink_ethtool_ksettings_set(dp->pl, cmd); } +static void dsa_slave_get_pauseparam(struct net_device *dev, + struct ethtool_pauseparam *pause) +{ + struct dsa_port *dp = dsa_slave_to_port(dev); + + phylink_ethtool_get_pauseparam(dp->pl, pause); +} + +static int dsa_slave_set_pauseparam(struct net_device *dev, + struct ethtool_pauseparam *pause) +{ + struct dsa_port *dp = dsa_slave_to_port(dev); + + return phylink_ethtool_set_pauseparam(dp->pl, pause); +} + #ifdef CONFIG_NET_POLL_CONTROLLER static int dsa_slave_netpoll_setup(struct net_device *dev, struct netpoll_info *ni) @@ -1192,6 +1208,8 @@ static const struct ethtool_ops dsa_slave_ethtool_ops = { .get_eee = dsa_slave_get_eee, .get_link_ksettings = dsa_slave_get_link_ksettings, .set_link_ksettings = dsa_slave_set_link_ksettings, + .get_pauseparam = dsa_slave_get_pauseparam, + .set_pauseparam = dsa_slave_set_pauseparam, .get_rxnfc = dsa_slave_get_rxnfc, .set_rxnfc = dsa_slave_set_rxnfc, .get_ts_info = dsa_slave_get_ts_info, |