net: jme: use new api ethtool_{get|set}_link_ksettings
authorPhilippe Reynes <tremyfr@gmail.com>
Sun, 15 Jan 2017 22:18:21 +0000 (23:18 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 17 Jan 2017 16:44:27 +0000 (11:44 -0500)
The ethtool api {get|set}_settings is deprecated.
We move this driver to new api {get|set}_link_ksettings.

As I don't have the hardware, I'd be very pleased if
someone may test this patch.

Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/jme.c
drivers/net/ethernet/jme.h

index f9fcab5..f580b49 100644 (file)
@@ -1879,7 +1879,7 @@ jme_open(struct net_device *netdev)
 
        jme_phy_on(jme);
        if (test_bit(JME_FLAG_SSET, &jme->flags))
-               jme_set_settings(netdev, &jme->old_ecmd);
+               jme_set_link_ksettings(netdev, &jme->old_cmd);
        else
                jme_reset_phy_processor(jme);
        jme_phy_calibration(jme);
@@ -2374,7 +2374,7 @@ jme_tx_timeout(struct net_device *netdev)
        jme->phylink = 0;
        jme_reset_phy_processor(jme);
        if (test_bit(JME_FLAG_SSET, &jme->flags))
-               jme_set_settings(netdev, &jme->old_ecmd);
+               jme_set_link_ksettings(netdev, &jme->old_cmd);
 
        /*
         * Force to Reset the link again
@@ -2648,27 +2648,27 @@ jme_set_wol(struct net_device *netdev,
 }
 
 static int
-jme_get_settings(struct net_device *netdev,
-                    struct ethtool_cmd *ecmd)
+jme_get_link_ksettings(struct net_device *netdev,
+                      struct ethtool_link_ksettings *cmd)
 {
        struct jme_adapter *jme = netdev_priv(netdev);
        int rc;
 
        spin_lock_bh(&jme->phy_lock);
-       rc = mii_ethtool_gset(&(jme->mii_if), ecmd);
+       rc = mii_ethtool_get_link_ksettings(&jme->mii_if, cmd);
        spin_unlock_bh(&jme->phy_lock);
        return rc;
 }
 
 static int
-jme_set_settings(struct net_device *netdev,
-                    struct ethtool_cmd *ecmd)
+jme_set_link_ksettings(struct net_device *netdev,
+                      const struct ethtool_link_ksettings *cmd)
 {
        struct jme_adapter *jme = netdev_priv(netdev);
        int rc, fdc = 0;
 
-       if (ethtool_cmd_speed(ecmd) == SPEED_1000
-           && ecmd->autoneg != AUTONEG_ENABLE)
+       if (cmd->base.speed == SPEED_1000 &&
+           cmd->base.autoneg != AUTONEG_ENABLE)
                return -EINVAL;
 
        /*
@@ -2676,18 +2676,18 @@ jme_set_settings(struct net_device *netdev,
         * Hardware would not generate link change interrupt.
         */
        if (jme->mii_if.force_media &&
-       ecmd->autoneg != AUTONEG_ENABLE &&
-       (jme->mii_if.full_duplex != ecmd->duplex))
+           cmd->base.autoneg != AUTONEG_ENABLE &&
+           (jme->mii_if.full_duplex != cmd->base.duplex))
                fdc = 1;
 
        spin_lock_bh(&jme->phy_lock);
-       rc = mii_ethtool_sset(&(jme->mii_if), ecmd);
+       rc = mii_ethtool_set_link_ksettings(&jme->mii_if, cmd);
        spin_unlock_bh(&jme->phy_lock);
 
        if (!rc) {
                if (fdc)
                        jme_reset_link(jme);
-               jme->old_ecmd = *ecmd;
+               jme->old_cmd = *cmd;
                set_bit(JME_FLAG_SSET, &jme->flags);
        }
 
@@ -2716,7 +2716,7 @@ jme_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
        if (!rc && (cmd == SIOCSMIIREG)) {
                if (duplex_chg)
                        jme_reset_link(jme);
-               jme_get_settings(netdev, &jme->old_ecmd);
+               jme_get_link_ksettings(netdev, &jme->old_cmd);
                set_bit(JME_FLAG_SSET, &jme->flags);
        }
 
@@ -2915,8 +2915,6 @@ static const struct ethtool_ops jme_ethtool_ops = {
        .set_pauseparam         = jme_set_pauseparam,
        .get_wol                = jme_get_wol,
        .set_wol                = jme_set_wol,
-       .get_settings           = jme_get_settings,
-       .set_settings           = jme_set_settings,
        .get_link               = jme_get_link,
        .get_msglevel           = jme_get_msglevel,
        .set_msglevel           = jme_set_msglevel,
@@ -2924,6 +2922,8 @@ static const struct ethtool_ops jme_ethtool_ops = {
        .get_eeprom_len         = jme_get_eeprom_len,
        .get_eeprom             = jme_get_eeprom,
        .set_eeprom             = jme_set_eeprom,
+       .get_link_ksettings     = jme_get_link_ksettings,
+       .set_link_ksettings     = jme_set_link_ksettings,
 };
 
 static int
@@ -3306,7 +3306,7 @@ jme_resume(struct device *dev)
        jme_clear_pm_disable_wol(jme);
        jme_phy_on(jme);
        if (test_bit(JME_FLAG_SSET, &jme->flags))
-               jme_set_settings(netdev, &jme->old_ecmd);
+               jme_set_link_ksettings(netdev, &jme->old_cmd);
        else
                jme_reset_phy_processor(jme);
        jme_phy_calibration(jme);
index 58cd67c..89535c0 100644 (file)
@@ -447,7 +447,7 @@ struct jme_adapter {
        u8                      chip_sub_rev;
        u8                      pcirev;
        u32                     msg_enable;
-       struct ethtool_cmd      old_ecmd;
+       struct ethtool_link_ksettings old_cmd;
        unsigned int            old_mtu;
        struct dynpcc_info      dpi;
        atomic_t                intr_sem;
@@ -1270,8 +1270,8 @@ static inline int new_phy_power_ctrl(u8 chip_main_rev)
 /*
  * Function prototypes
  */
-static int jme_set_settings(struct net_device *netdev,
-                               struct ethtool_cmd *ecmd);
+static int jme_set_link_ksettings(struct net_device *netdev,
+                                 const struct ethtool_link_ksettings *cmd);
 static void jme_set_unicastaddr(struct net_device *netdev);
 static void jme_set_multi(struct net_device *netdev);