net: dsa: add ethtool pause configuration support
authorHeiner Kallweit <hkallweit1@gmail.com>
Tue, 29 Oct 2019 21:32:48 +0000 (22:32 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 31 Oct 2019 00:42:51 +0000 (17:42 -0700)
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>
net/dsa/slave.c

index 75d58229a4bd356a18375a4e0c9e22e9e9a64082..750b376f4a0621c22ddb849ca42a8cfe91b3719a 100644 (file)
@@ -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,