All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Kleine-Budde <mkl@pengutronix.de>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, kuba@kernel.org, linux-can@vger.kernel.org,
	kernel@pengutronix.de,
	Dario Binacchi <dario.binacchi@amarulasolutions.com>,
	Marc Kleine-Budde <mkl@pengutronix.de>
Subject: [PATCH net-next 20/22] can: flexcan: add ethtool support to get rx/tx ring parameters
Date: Sat,  8 Jan 2022 22:43:43 +0100	[thread overview]
Message-ID: <20220108214345.1848470-21-mkl@pengutronix.de> (raw)
In-Reply-To: <20220108214345.1848470-1-mkl@pengutronix.de>

From: Dario Binacchi <dario.binacchi@amarulasolutions.com>

This patch adds ethtool support to get the number of message buffers
configured for reception/transmission, which may also depends on
runtime configurations such as the 'rx-rtr' flag state.

Link: https://lore.kernel.org/all/20220108181633.420433-1-dario.binacchi@amarulasolutions.com
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
[mkl: port to net-next/master, replace __sw_hweight64 by simpler calculation]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
 drivers/net/can/flexcan/flexcan-ethtool.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/drivers/net/can/flexcan/flexcan-ethtool.c b/drivers/net/can/flexcan/flexcan-ethtool.c
index d01347fbfaa9..3ae535577700 100644
--- a/drivers/net/can/flexcan/flexcan-ethtool.c
+++ b/drivers/net/can/flexcan/flexcan-ethtool.c
@@ -17,6 +17,26 @@ static const char flexcan_priv_flags_strings[][ETH_GSTRING_LEN] = {
 	"rx-rtr",
 };
 
+static void
+flexcan_get_ringparam(struct net_device *ndev, struct ethtool_ringparam *ring,
+		      struct kernel_ethtool_ringparam *kernel_ring,
+		      struct netlink_ext_ack *ext_ack)
+{
+	const struct flexcan_priv *priv = netdev_priv(ndev);
+
+	ring->rx_max_pending = priv->mb_count;
+	ring->tx_max_pending = priv->mb_count;
+
+	if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX)
+		ring->rx_pending = priv->offload.mb_last -
+			priv->offload.mb_first + 1;
+	else
+		ring->rx_pending = 6;	/* RX-FIFO depth is fixed */
+
+	/* the drive currently supports only on TX buffer */
+	ring->tx_pending = 1;
+}
+
 static void
 flexcan_get_strings(struct net_device *ndev, u32 stringset, u8 *data)
 {
@@ -81,6 +101,7 @@ static int flexcan_get_sset_count(struct net_device *netdev, int sset)
 }
 
 static const struct ethtool_ops flexcan_ethtool_ops = {
+	.get_ringparam = flexcan_get_ringparam,
 	.get_strings = flexcan_get_strings,
 	.get_priv_flags = flexcan_get_priv_flags,
 	.set_priv_flags = flexcan_set_priv_flags,
-- 
2.34.1



  parent reply	other threads:[~2022-01-08 21:44 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-08 21:43 [PATCH net-next 0/22] pull-request: can-next 2022-01-08 Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 01/22] can: janz-ican3: initialize dlc variable Marc Kleine-Budde
2022-01-09 17:00   ` patchwork-bot+netdevbpf
2022-01-08 21:43 ` [PATCH net-next 02/22] can: mcp251xfd: remove double blank lines Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 03/22] can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 04/22] can: mcp251xfd: add missing newline to printed strings Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 05/22] can: mcp251xfd: mcp251xfd_open(): open_candev() first Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 06/22] can: mcp251xfd: mcp251xfd_open(): make use of pm_runtime_resume_and_get() Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 07/22] can: mcp251xfd: mcp251xfd_handle_rxovif(): denote RX overflow message to debug + add rate limiting Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 08/22] can: mcp251xfd: mcp251xfd.h: sort function prototypes Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 09/22] can: mcp251xfd: move RX handling into separate file Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 10/22] can: mcp251xfd: move TX " Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 11/22] can: mcp251xfd: move TEF " Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 12/22] can: mcp251xfd: move chip FIFO init " Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 13/22] can: mcp251xfd: move ring init into separate function Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 14/22] can: mcp251xfd: introduce and make use of mcp251xfd_is_fd_mode() Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 15/22] can: flexcan: move driver into separate sub directory Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 16/22] can: flexcan: allow to change quirks at runtime Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 17/22] can: flexcan: rename RX modes Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 18/22] can: flexcan: add more quirks to describe RX path capabilities Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 19/22] can: flexcan: add ethtool support to change rx-rtr setting during runtime Marc Kleine-Budde
2022-01-08 21:43 ` Marc Kleine-Budde [this message]
2022-01-08 21:43 ` [PATCH net-next 21/22] docs: networking: device drivers: add can sub-folder Marc Kleine-Budde
2022-01-08 21:43 ` [PATCH net-next 22/22] docs: networking: device drivers: can: add flexcan Marc Kleine-Budde

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220108214345.1848470-21-mkl@pengutronix.de \
    --to=mkl@pengutronix.de \
    --cc=dario.binacchi@amarulasolutions.com \
    --cc=davem@davemloft.net \
    --cc=kernel@pengutronix.de \
    --cc=kuba@kernel.org \
    --cc=linux-can@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.