Netdev List
 help / color / mirror / Atom feed
From: Conor Dooley <conor@kernel.org>
To: netdev@vger.kernel.org
Cc: conor@kernel.org, Steve Wilkins <steve.wilkins@raymarine.com>,
	Conor Dooley <conor.dooley@microchip.com>,
	valentina.fernandezalanis@microchip.com,
	Nicolas Ferre <nicolas.ferre@microchip.com>,
	Claudiu Beznea <claudiu.beznea@tuxon.dev>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Russell King <linux@armlinux.org.uk>,
	linux-kernel@vger.kernel.org
Subject: [RFC net-next] net: macb: add support for configuring eee via ethtool
Date: Tue, 27 Aug 2024 12:29:23 +0100	[thread overview]
Message-ID: <20240827-excuse-banister-30136f43ef50@spud> (raw)

From: Steve Wilkins <steve.wilkins@raymarine.com>

Add ethtool_ops for configuring Energy Efficient Ethernet in the PHY.

Signed-off-by: Steve Wilkins <steve.wilkins@raymarine.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
Steve sent me this patch (modulo the eee -> keee change), but I know
nothing about the macb driver, so I asked Nicolas whether the patch
made sense. His response was:
> Interesting although I have the feeling that some support from our MAC
> is missing for pretending to support the feature.
> I'm not sure the phylink without the MAC support is valid.
>
> I think we need a real task to be spawn to support EEE / LPI on cadence
> driver (but I don't see it scheduled in a way or another 🙁 ).

Since he was not sure, next port of call is lkml.. Is this patch
sufficient in isolation, or are additional changes required to the driver
for it?

The other drivers that I looked at that use phylink_ethtool_set_eee()
vary between doing what's done here and just forwarding the call, but
others are more complex, so without an understanding of the subsystem
I cannot tell :)

Alternatively, Steve, shout if you can tell me why forwarding to the phy
is sufficient, and I'll update the commit message and send this as
non-RFC.

Thanks,
Conor.

CC: valentina.fernandezalanis@microchip.com
CC: Nicolas Ferre <nicolas.ferre@microchip.com>
CC: Claudiu Beznea <claudiu.beznea@tuxon.dev>
CC: "David S. Miller" <davem@davemloft.net>
CC: Eric Dumazet <edumazet@google.com>
CC: Jakub Kicinski <kuba@kernel.org>
CC: Paolo Abeni <pabeni@redhat.com>
CC: Russell King <linux@armlinux.org.uk>
CC: netdev@vger.kernel.org
CC: linux-kernel@vger.kernel.org
---
 drivers/net/ethernet/cadence/macb_main.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index 95e8742dce1d..a2a222954ebf 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -3321,6 +3321,20 @@ static int macb_set_link_ksettings(struct net_device *netdev,
 	return phylink_ethtool_ksettings_set(bp->phylink, kset);
 }
 
+static int macb_get_eee(struct net_device *netdev, struct ethtool_keee *edata)
+{
+	struct macb *bp = netdev_priv(netdev);
+
+	return phylink_ethtool_get_eee(bp->phylink, edata);
+}
+
+static int macb_set_eee(struct net_device *netdev, struct ethtool_keee *edata)
+{
+	struct macb *bp = netdev_priv(netdev);
+
+	return phylink_ethtool_set_eee(bp->phylink, edata);
+}
+
 static void macb_get_ringparam(struct net_device *netdev,
 			       struct ethtool_ringparam *ring,
 			       struct kernel_ethtool_ringparam *kernel_ring,
@@ -3767,6 +3781,8 @@ static const struct ethtool_ops macb_ethtool_ops = {
 	.set_wol		= macb_set_wol,
 	.get_link_ksettings     = macb_get_link_ksettings,
 	.set_link_ksettings     = macb_set_link_ksettings,
+	.get_eee		= macb_get_eee,
+	.set_eee		= macb_set_eee,
 	.get_ringparam		= macb_get_ringparam,
 	.set_ringparam		= macb_set_ringparam,
 };
@@ -3783,6 +3799,8 @@ static const struct ethtool_ops gem_ethtool_ops = {
 	.get_sset_count		= gem_get_sset_count,
 	.get_link_ksettings     = macb_get_link_ksettings,
 	.set_link_ksettings     = macb_set_link_ksettings,
+	.get_eee		= macb_get_eee,
+	.set_eee		= macb_set_eee,
 	.get_ringparam		= macb_get_ringparam,
 	.set_ringparam		= macb_set_ringparam,
 	.get_rxnfc			= gem_get_rxnfc,
-- 
2.43.0


             reply	other threads:[~2024-08-27 11:29 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-27 11:29 Conor Dooley [this message]
2024-08-27 15:29 ` [RFC net-next] net: macb: add support for configuring eee via ethtool Andrew Lunn
     [not found]   ` <AM0PR04MB41316B50F68C83A73E57A82F89952@AM0PR04MB4131.eurprd04.prod.outlook.com>
2024-08-28 16:18     ` Andrew Lunn
2024-08-28 17:00       ` Wilkins, Stephen

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=20240827-excuse-banister-30136f43ef50@spud \
    --to=conor@kernel.org \
    --cc=claudiu.beznea@tuxon.dev \
    --cc=conor.dooley@microchip.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=netdev@vger.kernel.org \
    --cc=nicolas.ferre@microchip.com \
    --cc=pabeni@redhat.com \
    --cc=steve.wilkins@raymarine.com \
    --cc=valentina.fernandezalanis@microchip.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