Use phy_ethtool_get/set_link_ksettings instead of open coding these
ethtool ops.

Signed-off-by: Heiner Kallweit <hkallwe...@gmail.com>
---
 drivers/net/ethernet/realtek/r8168.c | 50 +++---------------------------------
 1 file changed, 3 insertions(+), 47 deletions(-)

diff --git a/drivers/net/ethernet/realtek/r8168.c 
b/drivers/net/ethernet/realtek/r8168.c
index 62d0e0169..e698f13c2 100644
--- a/drivers/net/ethernet/realtek/r8168.c
+++ b/drivers/net/ethernet/realtek/r8168.c
@@ -2004,50 +2004,6 @@ static void rtl8168_rx_vlan_tag(struct RxDesc *desc, 
struct sk_buff *skb)
                __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), swab16(opts2 & 
0xffff));
 }
 
-static int rtl8168_get_link_ksettings_xmii(struct net_device *dev,
-                                          struct ethtool_link_ksettings *cmd)
-{
-       struct rtl8168_private *tp = netdev_priv(dev);
-
-       mii_ethtool_get_link_ksettings(&tp->mii, cmd);
-
-       return 0;
-}
-
-static int rtl8168_get_link_ksettings(struct net_device *dev,
-                                     struct ethtool_link_ksettings *cmd)
-{
-       struct rtl8168_private *tp = netdev_priv(dev);
-       int rc;
-
-       rtl_lock_work(tp);
-       rc = rtl8168_get_link_ksettings_xmii(dev, cmd);
-       rtl_unlock_work(tp);
-
-       return rc;
-}
-
-static int rtl8168_set_link_ksettings(struct net_device *dev,
-                                     const struct ethtool_link_ksettings *cmd)
-{
-       struct rtl8168_private *tp = netdev_priv(dev);
-       int rc;
-       u32 advertising;
-
-       if (!ethtool_convert_link_mode_to_legacy_u32(&advertising,
-           cmd->link_modes.advertising))
-               return -EINVAL;
-
-       del_timer_sync(&tp->timer);
-
-       rtl_lock_work(tp);
-       rc = rtl8168_set_speed(dev, cmd->base.autoneg, cmd->base.speed,
-                              cmd->base.duplex, advertising);
-       rtl_unlock_work(tp);
-
-       return rc;
-}
-
 static void rtl8168_get_regs(struct net_device *dev, struct ethtool_regs *regs,
                             void *p)
 {
@@ -2317,7 +2273,7 @@ static const struct rtl_coalesce_info 
*rtl_coalesce_info(struct net_device *dev)
        const struct rtl_coalesce_info *ci;
        int rc;
 
-       rc = rtl8168_get_link_ksettings(dev, &ecmd);
+       rc = phy_ethtool_get_link_ksettings(dev, &ecmd);
        if (rc < 0)
                return ERR_PTR(rc);
 
@@ -2478,8 +2434,8 @@ static const struct ethtool_ops rtl8168_ethtool_ops = {
        .get_ethtool_stats      = rtl8168_get_ethtool_stats,
        .get_ts_info            = ethtool_op_get_ts_info,
        .nway_reset             = rtl8168_nway_reset,
-       .get_link_ksettings     = rtl8168_get_link_ksettings,
-       .set_link_ksettings     = rtl8168_set_link_ksettings,
+       .get_link_ksettings     = phy_ethtool_get_link_ksettings,
+       .set_link_ksettings     = phy_ethtool_set_link_ksettings,
 };
 
 static void rtl8168_get_mac_version(struct rtl8168_private *tp,
-- 
2.15.1


Reply via email to