Commit c523838c authored by Philippe Reynes's avatar Philippe Reynes Committed by David S. Miller

net: jme: use new api ethtool_{get|set}_link_ksettings

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: default avatarPhilippe Reynes <tremyfr@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent af473688
...@@ -1879,7 +1879,7 @@ jme_open(struct net_device *netdev) ...@@ -1879,7 +1879,7 @@ jme_open(struct net_device *netdev)
jme_phy_on(jme); jme_phy_on(jme);
if (test_bit(JME_FLAG_SSET, &jme->flags)) if (test_bit(JME_FLAG_SSET, &jme->flags))
jme_set_settings(netdev, &jme->old_ecmd); jme_set_link_ksettings(netdev, &jme->old_cmd);
else else
jme_reset_phy_processor(jme); jme_reset_phy_processor(jme);
jme_phy_calibration(jme); jme_phy_calibration(jme);
...@@ -2374,7 +2374,7 @@ jme_tx_timeout(struct net_device *netdev) ...@@ -2374,7 +2374,7 @@ jme_tx_timeout(struct net_device *netdev)
jme->phylink = 0; jme->phylink = 0;
jme_reset_phy_processor(jme); jme_reset_phy_processor(jme);
if (test_bit(JME_FLAG_SSET, &jme->flags)) 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 * Force to Reset the link again
...@@ -2648,27 +2648,27 @@ jme_set_wol(struct net_device *netdev, ...@@ -2648,27 +2648,27 @@ jme_set_wol(struct net_device *netdev,
} }
static int static int
jme_get_settings(struct net_device *netdev, jme_get_link_ksettings(struct net_device *netdev,
struct ethtool_cmd *ecmd) struct ethtool_link_ksettings *cmd)
{ {
struct jme_adapter *jme = netdev_priv(netdev); struct jme_adapter *jme = netdev_priv(netdev);
int rc; int rc;
spin_lock_bh(&jme->phy_lock); 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); spin_unlock_bh(&jme->phy_lock);
return rc; return rc;
} }
static int static int
jme_set_settings(struct net_device *netdev, jme_set_link_ksettings(struct net_device *netdev,
struct ethtool_cmd *ecmd) const struct ethtool_link_ksettings *cmd)
{ {
struct jme_adapter *jme = netdev_priv(netdev); struct jme_adapter *jme = netdev_priv(netdev);
int rc, fdc = 0; int rc, fdc = 0;
if (ethtool_cmd_speed(ecmd) == SPEED_1000 if (cmd->base.speed == SPEED_1000 &&
&& ecmd->autoneg != AUTONEG_ENABLE) cmd->base.autoneg != AUTONEG_ENABLE)
return -EINVAL; return -EINVAL;
/* /*
...@@ -2676,18 +2676,18 @@ jme_set_settings(struct net_device *netdev, ...@@ -2676,18 +2676,18 @@ jme_set_settings(struct net_device *netdev,
* Hardware would not generate link change interrupt. * Hardware would not generate link change interrupt.
*/ */
if (jme->mii_if.force_media && if (jme->mii_if.force_media &&
ecmd->autoneg != AUTONEG_ENABLE && cmd->base.autoneg != AUTONEG_ENABLE &&
(jme->mii_if.full_duplex != ecmd->duplex)) (jme->mii_if.full_duplex != cmd->base.duplex))
fdc = 1; fdc = 1;
spin_lock_bh(&jme->phy_lock); 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); spin_unlock_bh(&jme->phy_lock);
if (!rc) { if (!rc) {
if (fdc) if (fdc)
jme_reset_link(jme); jme_reset_link(jme);
jme->old_ecmd = *ecmd; jme->old_cmd = *cmd;
set_bit(JME_FLAG_SSET, &jme->flags); set_bit(JME_FLAG_SSET, &jme->flags);
} }
...@@ -2716,7 +2716,7 @@ jme_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) ...@@ -2716,7 +2716,7 @@ jme_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
if (!rc && (cmd == SIOCSMIIREG)) { if (!rc && (cmd == SIOCSMIIREG)) {
if (duplex_chg) if (duplex_chg)
jme_reset_link(jme); 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); set_bit(JME_FLAG_SSET, &jme->flags);
} }
...@@ -2915,8 +2915,6 @@ static const struct ethtool_ops jme_ethtool_ops = { ...@@ -2915,8 +2915,6 @@ static const struct ethtool_ops jme_ethtool_ops = {
.set_pauseparam = jme_set_pauseparam, .set_pauseparam = jme_set_pauseparam,
.get_wol = jme_get_wol, .get_wol = jme_get_wol,
.set_wol = jme_set_wol, .set_wol = jme_set_wol,
.get_settings = jme_get_settings,
.set_settings = jme_set_settings,
.get_link = jme_get_link, .get_link = jme_get_link,
.get_msglevel = jme_get_msglevel, .get_msglevel = jme_get_msglevel,
.set_msglevel = jme_set_msglevel, .set_msglevel = jme_set_msglevel,
...@@ -2924,6 +2922,8 @@ static const struct ethtool_ops jme_ethtool_ops = { ...@@ -2924,6 +2922,8 @@ static const struct ethtool_ops jme_ethtool_ops = {
.get_eeprom_len = jme_get_eeprom_len, .get_eeprom_len = jme_get_eeprom_len,
.get_eeprom = jme_get_eeprom, .get_eeprom = jme_get_eeprom,
.set_eeprom = jme_set_eeprom, .set_eeprom = jme_set_eeprom,
.get_link_ksettings = jme_get_link_ksettings,
.set_link_ksettings = jme_set_link_ksettings,
}; };
static int static int
...@@ -3306,7 +3306,7 @@ jme_resume(struct device *dev) ...@@ -3306,7 +3306,7 @@ jme_resume(struct device *dev)
jme_clear_pm_disable_wol(jme); jme_clear_pm_disable_wol(jme);
jme_phy_on(jme); jme_phy_on(jme);
if (test_bit(JME_FLAG_SSET, &jme->flags)) if (test_bit(JME_FLAG_SSET, &jme->flags))
jme_set_settings(netdev, &jme->old_ecmd); jme_set_link_ksettings(netdev, &jme->old_cmd);
else else
jme_reset_phy_processor(jme); jme_reset_phy_processor(jme);
jme_phy_calibration(jme); jme_phy_calibration(jme);
......
...@@ -447,7 +447,7 @@ struct jme_adapter { ...@@ -447,7 +447,7 @@ struct jme_adapter {
u8 chip_sub_rev; u8 chip_sub_rev;
u8 pcirev; u8 pcirev;
u32 msg_enable; u32 msg_enable;
struct ethtool_cmd old_ecmd; struct ethtool_link_ksettings old_cmd;
unsigned int old_mtu; unsigned int old_mtu;
struct dynpcc_info dpi; struct dynpcc_info dpi;
atomic_t intr_sem; atomic_t intr_sem;
...@@ -1270,8 +1270,8 @@ static inline int new_phy_power_ctrl(u8 chip_main_rev) ...@@ -1270,8 +1270,8 @@ static inline int new_phy_power_ctrl(u8 chip_main_rev)
/* /*
* Function prototypes * Function prototypes
*/ */
static int jme_set_settings(struct net_device *netdev, static int jme_set_link_ksettings(struct net_device *netdev,
struct ethtool_cmd *ecmd); const struct ethtool_link_ksettings *cmd);
static void jme_set_unicastaddr(struct net_device *netdev); static void jme_set_unicastaddr(struct net_device *netdev);
static void jme_set_multi(struct net_device *netdev); static void jme_set_multi(struct net_device *netdev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment