Commit 61332b78 authored by Nicolai Buchwitz's avatar Nicolai Buchwitz Committed by Jakub Kicinski
Browse files

net: cadence: macb: add ethtool EEE support



Implement get_eee and set_eee ethtool ops for GEM as simple passthroughs
to phylink_ethtool_get_eee() and phylink_ethtool_set_eee().

No MACB_CAPS_EEE guard is needed: phylink returns -EOPNOTSUPP from both
ops when mac_supports_eee is false, which is the case when
lpi_capabilities and lpi_interfaces are not populated. Those fields are
only set when MACB_CAPS_EEE is present (previous patch), so phylink
already handles the unsupported case correctly.

Reviewed-by: default avatarClaudiu Beznea <claudiu.beznea@tuxon.dev>
Reviewed-by: default avatarThéo Lebrun <theo.lebrun@bootlin.com>
Signed-off-by: default avatarNicolai Buchwitz <nb@tipi-net.de>
Link: https://patch.msgid.link/20260304105432.631186-4-nb@tipi-net.de


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 0cc425f1
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -4058,6 +4058,20 @@ static const struct ethtool_ops macb_ethtool_ops = {
	.set_ringparam		= macb_set_ringparam,
};

static int macb_get_eee(struct net_device *dev, struct ethtool_keee *eee)
{
	struct macb *bp = netdev_priv(dev);

	return phylink_ethtool_get_eee(bp->phylink, eee);
}

static int macb_set_eee(struct net_device *dev, struct ethtool_keee *eee)
{
	struct macb *bp = netdev_priv(dev);

	return phylink_ethtool_set_eee(bp->phylink, eee);
}

static const struct ethtool_ops gem_ethtool_ops = {
	.get_regs_len		= macb_get_regs_len,
	.get_regs		= macb_get_regs,
@@ -4080,6 +4094,8 @@ static const struct ethtool_ops gem_ethtool_ops = {
	.set_rxnfc			= gem_set_rxnfc,
	.get_rx_ring_count		= gem_get_rx_ring_count,
	.nway_reset			= phy_ethtool_nway_reset,
	.get_eee		= macb_get_eee,
	.set_eee		= macb_set_eee,
};

static int macb_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)