linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Clément Léger" <clement.leger@bootlin.com>
To: "David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Vladimir Oltean <vladimir.oltean@nxp.com>,
	Claudiu Manoil <claudiu.manoil@nxp.com>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	UNGLinuxDriver@microchip.com, Andrew Lunn <andrew@lunn.ch>
Cc: "Clément Léger" <clement.leger@bootlin.com>,
	netdev@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>
Subject: [PATCH v2 4/6] net: ocelot: add support for ndo_change_mtu
Date: Wed,  3 Nov 2021 10:19:41 +0100	[thread overview]
Message-ID: <20211103091943.3878621-5-clement.leger@bootlin.com> (raw)
In-Reply-To: <20211103091943.3878621-1-clement.leger@bootlin.com>

This commit adds support for changing MTU for the ocelot register based
interface. For ocelot, JUMBO frame size can be set up to 25000 bytes
but has been set to 9000 which is a saner value and allow for maximum
gain of performances. Frames larger than 9000 bytes do not yield
a noticeable improvement.

Signed-off-by: Clément Léger <clement.leger@bootlin.com>
---
 drivers/net/ethernet/mscc/ocelot.h     |  2 ++
 drivers/net/ethernet/mscc/ocelot_net.c | 14 ++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/drivers/net/ethernet/mscc/ocelot.h b/drivers/net/ethernet/mscc/ocelot.h
index e43da09b8f91..ba0dec7dd64f 100644
--- a/drivers/net/ethernet/mscc/ocelot.h
+++ b/drivers/net/ethernet/mscc/ocelot.h
@@ -32,6 +32,8 @@
 
 #define OCELOT_PTP_QUEUE_SZ	128
 
+#define OCELOT_JUMBO_MTU	9000
+
 struct ocelot_port_tc {
 	bool block_shared;
 	unsigned long offload_cnt;
diff --git a/drivers/net/ethernet/mscc/ocelot_net.c b/drivers/net/ethernet/mscc/ocelot_net.c
index d76def435b23..5916492fd6d0 100644
--- a/drivers/net/ethernet/mscc/ocelot_net.c
+++ b/drivers/net/ethernet/mscc/ocelot_net.c
@@ -482,6 +482,18 @@ static netdev_tx_t ocelot_port_xmit(struct sk_buff *skb, struct net_device *dev)
 	return NETDEV_TX_OK;
 }
 
+static int ocelot_change_mtu(struct net_device *dev, int new_mtu)
+{
+	struct ocelot_port_private *priv = netdev_priv(dev);
+	struct ocelot_port *ocelot_port = &priv->port;
+	struct ocelot *ocelot = ocelot_port->ocelot;
+
+	ocelot_port_set_maxlen(ocelot, priv->chip_port, new_mtu);
+	WRITE_ONCE(dev->mtu, new_mtu);
+
+	return 0;
+}
+
 enum ocelot_action_type {
 	OCELOT_MACT_LEARN,
 	OCELOT_MACT_FORGET,
@@ -768,6 +780,7 @@ static const struct net_device_ops ocelot_port_netdev_ops = {
 	.ndo_open			= ocelot_port_open,
 	.ndo_stop			= ocelot_port_stop,
 	.ndo_start_xmit			= ocelot_port_xmit,
+	.ndo_change_mtu			= ocelot_change_mtu,
 	.ndo_set_rx_mode		= ocelot_set_rx_mode,
 	.ndo_set_mac_address		= ocelot_port_set_mac_address,
 	.ndo_get_stats64		= ocelot_get_stats64,
@@ -1699,6 +1712,7 @@ int ocelot_probe_port(struct ocelot *ocelot, int port, struct regmap *target,
 
 	dev->netdev_ops = &ocelot_port_netdev_ops;
 	dev->ethtool_ops = &ocelot_ethtool_ops;
+	dev->max_mtu = OCELOT_JUMBO_MTU;
 
 	dev->hw_features |= NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_RXFCS |
 		NETIF_F_HW_TC;
-- 
2.33.0


  parent reply	other threads:[~2021-11-03  9:20 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-03  9:19 [PATCH v2 0/6] Add FDMA support on ocelot switch driver Clément Léger
2021-11-03  9:19 ` [PATCH v2 1/6] net: ocelot: add support to get port mac from device-tree Clément Léger
2021-11-03 10:26   ` Vladimir Oltean
2021-11-15 11:19   ` Julian Wiedmann
2021-11-15 11:24     ` Clément Léger
2021-11-03  9:19 ` [PATCH v2 2/6] dt-bindings: net: convert mscc,vsc7514-switch bindings to yaml Clément Léger
2021-11-03 10:45   ` Vladimir Oltean
2021-11-08 11:13     ` Clément Léger
2021-11-12 20:06   ` Rob Herring
2021-11-03  9:19 ` [PATCH v2 3/6] net: ocelot: pre-compute injection frame header content Clément Léger
2021-11-03 12:38   ` Vladimir Oltean
2021-11-03 13:53     ` Clément Léger
2021-11-15 10:13       ` Clément Léger
2021-11-15 10:51         ` Vladimir Oltean
2021-11-15 10:58           ` Clément Léger
2021-11-15 14:08         ` Jakub Kicinski
2021-11-15 14:06           ` Clément Léger
2021-11-15 14:31             ` Vladimir Oltean
2021-11-15 16:03               ` Clément Léger
2021-11-03  9:19 ` Clément Léger [this message]
2021-11-03 12:40   ` [PATCH v2 4/6] net: ocelot: add support for ndo_change_mtu Vladimir Oltean
2021-11-03 13:07     ` Clément Léger
2021-11-03  9:19 ` [PATCH v2 5/6] net: ocelot: add FDMA support Clément Léger
2021-11-03 11:25   ` Denis Kirjanov
2021-11-03 12:31   ` Vladimir Oltean
2021-11-03 14:22     ` Clément Léger
2021-11-03  9:19 ` [PATCH v2 6/6] net: ocelot: add jumbo frame support for FDMA Clément Léger
2021-11-03 12:43   ` Vladimir Oltean
2021-11-03 14:30     ` Clément Léger
2021-11-03 10:46 ` [PATCH v2 0/6] Add FDMA support on ocelot switch driver Denis Kirjanov

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=20211103091943.3878621-5-clement.leger@bootlin.com \
    --to=clement.leger@bootlin.com \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=andrew@lunn.ch \
    --cc=claudiu.manoil@nxp.com \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vladimir.oltean@nxp.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).