Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7260aac9 authored by Maxime Bizon's avatar Maxime Bizon Committed by David S. Miller
Browse files

bcm63xx_enet: implement reset autoneg ethtool callback



Implement the rset_nway ethtool callback which uses libphy generic
autonegotiation restart function.

Signed-off-by: default avatarMaxime Bizon <mbizon@freebox.fr>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent df09b36f
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -1328,6 +1328,20 @@ static void bcm_enet_get_ethtool_stats(struct net_device *netdev,
	mutex_unlock(&priv->mib_update_lock);
}

static int bcm_enet_nway_reset(struct net_device *dev)
{
	struct bcm_enet_priv *priv;

	priv = netdev_priv(dev);
	if (priv->has_phy) {
		if (!priv->phydev)
			return -ENODEV;
		return genphy_restart_aneg(priv->phydev);
	}

	return -EOPNOTSUPP;
}

static int bcm_enet_get_settings(struct net_device *dev,
				 struct ethtool_cmd *cmd)
{
@@ -1470,6 +1484,7 @@ static const struct ethtool_ops bcm_enet_ethtool_ops = {
	.get_strings		= bcm_enet_get_strings,
	.get_sset_count		= bcm_enet_get_sset_count,
	.get_ethtool_stats      = bcm_enet_get_ethtool_stats,
	.nway_reset		= bcm_enet_nway_reset,
	.get_settings		= bcm_enet_get_settings,
	.set_settings		= bcm_enet_set_settings,
	.get_drvinfo		= bcm_enet_get_drvinfo,