From patchwork Thu Nov 3 13:58:46 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 690858 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3t8mmX5nKHz9vDV for ; Fri, 4 Nov 2016 00:59:24 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b=1gICBycW; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757722AbcKCN7R (ORCPT ); Thu, 3 Nov 2016 09:59:17 -0400 Received: from mail-wm0-f54.google.com ([74.125.82.54]:35986 "EHLO mail-wm0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757648AbcKCN7Q (ORCPT ); Thu, 3 Nov 2016 09:59:16 -0400 Received: by mail-wm0-f54.google.com with SMTP id p190so335314579wmp.1 for ; Thu, 03 Nov 2016 06:59:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=8i5NgCul0deW0KtSX5+S9bG5O/UOEBXiKdT6C2fAOpo=; b=1gICBycWnNy6Un53ldQ0NSuMontplmh3AyOFMrbcLbX4qiVmlunVbqk3bR8MNaNPV7 nd9R8spgz3k3INQSR+kGTx8w3HzKsRL8rl73xTyBPUeKce40Bf4VPccMRa8Jlb8SqG/U bYVOtVKIHE3uSAJ5/Xx5NIBdZ9lkVfws7nRVYj2OHipoDYJm0Dj2iQIyAAffpBfioMsQ SA9VRm2fiAVa0mkmIsv2dFFhYGh1zZWjbLVO6vIFpKYOWdR4wjvdvV5RkEnHkKMyA9p/ VZSBA/jGgM5uH1Eqh1p90dsvoKwXqKHOA89mHDeALpNE7kQspJCIG+/69+4kQl91lhym SPIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=8i5NgCul0deW0KtSX5+S9bG5O/UOEBXiKdT6C2fAOpo=; b=muQpT6FE6PO0risE3AlUR14H0qa3RDzqsroh8mkgF6emENYPn81YXesIZRVFwse//P e5+hPAYpGYjOB3cOwKC8+68RQmMS3ap2CPCZaZQTVM55XTjqqQseEH5aOUW/1CXUOBIQ Tn0Y6px3SEEc0+0YFzZgcUxWWI7hTwd8prtK2L+fPREdE/2x+eK+/r3Myopd2Aro8YkI FVdM2HlqvEK/ttuGDkdJ+8cSQuAXzh4K2G0tyjaZDA11itsT83/0MjbqLb4xXfVmjSOM iTaFLnd9zHbWGcBYCkk7Llft+JEET2/PUkeMt+1iRWns7RDjSDCkGgmtM0N3pcvAUwsl Bw6Q== X-Gm-Message-State: ABUngvc7831qaFBAXFGqtl+peLn3ovuzZ7hSloqGvwCusfgz4zt4kTiYFBwjpNlcNnioIptq X-Received: by 10.194.26.170 with SMTP id m10mr4356061wjg.152.1478181554080; Thu, 03 Nov 2016 06:59:14 -0700 (PDT) Received: from jkicinski-Precision-T1700.netronome.com (host-79-78-33-110.static.as9105.net. [79.78.33.110]) by smtp.gmail.com with ESMTPSA id g10sm8746530wjw.18.2016.11.03.06.59.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 03 Nov 2016 06:59:13 -0700 (PDT) From: Jakub Kicinski To: netdev@vger.kernel.org Cc: Jakub Kicinski Subject: [PATCH net-next 01/13] nfp: add support for ethtool .get_channels Date: Thu, 3 Nov 2016 13:58:46 +0000 Message-Id: <1478181538-20778-2-git-send-email-jakub.kicinski@netronome.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1478181538-20778-1-git-send-email-jakub.kicinski@netronome.com> References: <1478181538-20778-1-git-send-email-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Report number of rings via ethtool .get_channels API. Signed-off-by: Jakub Kicinski --- drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c index 3418f2277e9d..a7386d1b2883 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c @@ -614,6 +614,21 @@ static int nfp_net_set_coalesce(struct net_device *netdev, return nfp_net_reconfig(nn, NFP_NET_CFG_UPDATE_IRQMOD); } +static void nfp_net_get_channels(struct net_device *netdev, + struct ethtool_channels *channel) +{ + struct nfp_net *nn = netdev_priv(netdev); + + channel->max_rx = min(nn->max_rx_rings, nn->max_r_vecs); + channel->max_tx = min(nn->max_tx_rings, nn->max_r_vecs); + channel->max_combined = min(channel->max_rx, channel->max_tx); + channel->max_other = NFP_NET_NON_Q_VECTORS; + channel->combined_count = min(nn->num_rx_rings, nn->num_tx_rings); + channel->rx_count = nn->num_rx_rings - channel->combined_count; + channel->tx_count = nn->num_tx_rings - channel->combined_count; + channel->other_count = NFP_NET_NON_Q_VECTORS; +} + static const struct ethtool_ops nfp_net_ethtool_ops = { .get_drvinfo = nfp_net_get_drvinfo, .get_link = ethtool_op_get_link, @@ -632,6 +647,7 @@ static int nfp_net_set_coalesce(struct net_device *netdev, .get_regs = nfp_net_get_regs, .get_coalesce = nfp_net_get_coalesce, .set_coalesce = nfp_net_set_coalesce, + .get_channels = nfp_net_get_channels, }; void nfp_net_set_ethtool_ops(struct net_device *netdev)