|
@@ -450,6 +450,30 @@ static inline void bcmgenet_rdma_ring_writel(struct bcmgenet_priv *priv,
|
|
|
genet_dma_ring_regs[r]);
|
|
|
}
|
|
|
|
|
|
+static int bcmgenet_get_settings(struct net_device *dev,
|
|
|
+ struct ethtool_cmd *cmd)
|
|
|
+{
|
|
|
+ if (!netif_running(dev))
|
|
|
+ return -EINVAL;
|
|
|
+
|
|
|
+ if (!dev->phydev)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
+ return phy_ethtool_gset(dev->phydev, cmd);
|
|
|
+}
|
|
|
+
|
|
|
+static int bcmgenet_set_settings(struct net_device *dev,
|
|
|
+ struct ethtool_cmd *cmd)
|
|
|
+{
|
|
|
+ if (!netif_running(dev))
|
|
|
+ return -EINVAL;
|
|
|
+
|
|
|
+ if (!dev->phydev)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
+ return phy_ethtool_sset(dev->phydev, cmd);
|
|
|
+}
|
|
|
+
|
|
|
static int bcmgenet_set_rx_csum(struct net_device *dev,
|
|
|
netdev_features_t wanted)
|
|
|
{
|
|
@@ -953,6 +977,8 @@ static struct ethtool_ops bcmgenet_ethtool_ops = {
|
|
|
.get_strings = bcmgenet_get_strings,
|
|
|
.get_sset_count = bcmgenet_get_sset_count,
|
|
|
.get_ethtool_stats = bcmgenet_get_ethtool_stats,
|
|
|
+ .get_settings = bcmgenet_get_settings,
|
|
|
+ .set_settings = bcmgenet_set_settings,
|
|
|
.get_drvinfo = bcmgenet_get_drvinfo,
|
|
|
.get_link = ethtool_op_get_link,
|
|
|
.get_msglevel = bcmgenet_get_msglevel,
|
|
@@ -964,8 +990,6 @@ static struct ethtool_ops bcmgenet_ethtool_ops = {
|
|
|
.nway_reset = bcmgenet_nway_reset,
|
|
|
.get_coalesce = bcmgenet_get_coalesce,
|
|
|
.set_coalesce = bcmgenet_set_coalesce,
|
|
|
- .get_link_ksettings = phy_ethtool_get_link_ksettings,
|
|
|
- .set_link_ksettings = phy_ethtool_set_link_ksettings,
|
|
|
};
|
|
|
|
|
|
/* Power down the unimac, based on mode. */
|