tsnep: Add ethtool::get_channels support
authorGerhard Engleder <gerhard@engleder-embedded.com>
Wed, 30 Nov 2022 19:37:06 +0000 (20:37 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Dec 2022 10:47:49 +0000 (10:47 +0000)
Allow user space to read number of TX and RX queue. This is useful for
device dependent qdisc configurations like TAPRIO with hardware offload.
Also ethtool::get_per_queue_coalesce / set_per_queue_coalesce requires
that interface.

Signed-off-by: Gerhard Engleder <gerhard@engleder-embedded.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/engleder/tsnep_ethtool.c

index c2640e8..517ac8d 100644 (file)
@@ -288,6 +288,17 @@ static int tsnep_ethtool_set_rxnfc(struct net_device *netdev,
        }
 }
 
+static void tsnep_ethtool_get_channels(struct net_device *netdev,
+                                      struct ethtool_channels *ch)
+{
+       struct tsnep_adapter *adapter = netdev_priv(netdev);
+
+       ch->max_rx = adapter->num_rx_queues;
+       ch->max_tx = adapter->num_tx_queues;
+       ch->rx_count = adapter->num_rx_queues;
+       ch->tx_count = adapter->num_tx_queues;
+}
+
 static int tsnep_ethtool_get_ts_info(struct net_device *netdev,
                                     struct ethtool_ts_info *info)
 {
@@ -327,6 +338,7 @@ const struct ethtool_ops tsnep_ethtool_ops = {
        .get_sset_count = tsnep_ethtool_get_sset_count,
        .get_rxnfc = tsnep_ethtool_get_rxnfc,
        .set_rxnfc = tsnep_ethtool_set_rxnfc,
+       .get_channels = tsnep_ethtool_get_channels,
        .get_ts_info = tsnep_ethtool_get_ts_info,
        .get_link_ksettings = phy_ethtool_get_link_ksettings,
        .set_link_ksettings = phy_ethtool_set_link_ksettings,