[PATCH net-next] net: sparx5/lan969x: Add support for ethtool pause parameters

Daniel Machon posted 1 patch 2 weeks ago
drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
[PATCH net-next] net: sparx5/lan969x: Add support for ethtool pause parameters
Posted by Daniel Machon 2 weeks ago
Implement get_pauseparam() and set_pauseparam() ethtool operations for
Sparx5 ports.  This allows users to query and configure IEEE 802.3x
pause frame settings via:

ethtool -a ethX
ethtool -A ethX rx on|off tx on|off autoneg on|off

The driver delegates pause parameter handling to phylink through
phylink_ethtool_get_pauseparam() and phylink_ethtool_set_pauseparam().

The underlying configuration of pause frame generation and reception is
already implemented in the driver; this patch only wires it up to the
standard ethtool interface, making the feature accessible to userspace.

Signed-off-by: Daniel Machon <daniel.machon@microchip.com>
---
 drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c b/drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c
index 832f4ae57c83..049541eeaae0 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c
@@ -1212,6 +1212,22 @@ static int sparx5_get_ts_info(struct net_device *dev,
 	return 0;
 }
 
+static void sparx5_get_pauseparam(struct net_device *dev,
+				  struct ethtool_pauseparam *pause)
+{
+	struct sparx5_port *port = netdev_priv(dev);
+
+	phylink_ethtool_get_pauseparam(port->phylink, pause);
+}
+
+static int sparx5_set_pauseparam(struct net_device *dev,
+				 struct ethtool_pauseparam *pause)
+{
+	struct sparx5_port *port = netdev_priv(dev);
+
+	return phylink_ethtool_set_pauseparam(port->phylink, pause);
+}
+
 const struct ethtool_ops sparx5_ethtool_ops = {
 	.get_sset_count         = sparx5_get_sset_count,
 	.get_strings            = sparx5_get_sset_strings,
@@ -1224,6 +1240,8 @@ const struct ethtool_ops sparx5_ethtool_ops = {
 	.get_eth_ctrl_stats     = sparx5_get_eth_mac_ctrl_stats,
 	.get_rmon_stats         = sparx5_get_eth_rmon_stats,
 	.get_ts_info            = sparx5_get_ts_info,
+	.get_pauseparam         = sparx5_get_pauseparam,
+	.set_pauseparam         = sparx5_set_pauseparam,
 };
 
 int sparx_stats_init(struct sparx5 *sparx5)

---
base-commit: 5e87fdc37f8dc619549d49ba5c951b369ce7c136
change-id: 20250917-802-3x-pause-192df5852333

Best regards,
-- 
Daniel Machon <daniel.machon@microchip.com>
Re: [PATCH net-next] net: sparx5/lan969x: Add support for ethtool pause parameters
Posted by Russell King (Oracle) 2 weeks ago
On Wed, Sep 17, 2025 at 01:49:43PM +0200, Daniel Machon wrote:
> Implement get_pauseparam() and set_pauseparam() ethtool operations for
> Sparx5 ports.  This allows users to query and configure IEEE 802.3x
> pause frame settings via:
> 
> ethtool -a ethX
> ethtool -A ethX rx on|off tx on|off autoneg on|off
> 
> The driver delegates pause parameter handling to phylink through
> phylink_ethtool_get_pauseparam() and phylink_ethtool_set_pauseparam().
> 
> The underlying configuration of pause frame generation and reception is
> already implemented in the driver; this patch only wires it up to the
> standard ethtool interface, making the feature accessible to userspace.
> 
> Signed-off-by: Daniel Machon <daniel.machon@microchip.com>

It is nice to see drivers not having to implement complicated code
to add support for pause configuration!

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>

Thanks!

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!