Commit 48ce8802 authored by Philippe Reynes's avatar Philippe Reynes Committed by Jeff Kirsher

i40evf: 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>
Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent a7f90940
...@@ -64,51 +64,50 @@ static const struct i40evf_stats i40evf_gstrings_stats[] = { ...@@ -64,51 +64,50 @@ static const struct i40evf_stats i40evf_gstrings_stats[] = {
(I40EVF_GLOBAL_STATS_LEN + I40EVF_QUEUE_STATS_LEN(_dev)) (I40EVF_GLOBAL_STATS_LEN + I40EVF_QUEUE_STATS_LEN(_dev))
/** /**
* i40evf_get_settings - Get Link Speed and Duplex settings * i40evf_get_link_ksettings - Get Link Speed and Duplex settings
* @netdev: network interface device structure * @netdev: network interface device structure
* @ecmd: ethtool command * @cmd: ethtool command
* *
* Reports speed/duplex settings. Because this is a VF, we don't know what * Reports speed/duplex settings. Because this is a VF, we don't know what
* kind of link we really have, so we fake it. * kind of link we really have, so we fake it.
**/ **/
static int i40evf_get_settings(struct net_device *netdev, static int i40evf_get_link_ksettings(struct net_device *netdev,
struct ethtool_cmd *ecmd) struct ethtool_link_ksettings *cmd)
{ {
struct i40evf_adapter *adapter = netdev_priv(netdev); struct i40evf_adapter *adapter = netdev_priv(netdev);
ecmd->supported = 0; ethtool_link_ksettings_zero_link_mode(cmd, supported);
ecmd->autoneg = AUTONEG_DISABLE; cmd->base.autoneg = AUTONEG_DISABLE;
ecmd->transceiver = XCVR_DUMMY1; cmd->base.port = PORT_NONE;
ecmd->port = PORT_NONE;
/* Set speed and duplex */ /* Set speed and duplex */
switch (adapter->link_speed) { switch (adapter->link_speed) {
case I40E_LINK_SPEED_40GB: case I40E_LINK_SPEED_40GB:
ethtool_cmd_speed_set(ecmd, SPEED_40000); cmd->base.speed = SPEED_40000;
break; break;
case I40E_LINK_SPEED_25GB: case I40E_LINK_SPEED_25GB:
#ifdef SPEED_25000 #ifdef SPEED_25000
ethtool_cmd_speed_set(ecmd, SPEED_25000); cmd->base.speed = SPEED_25000;
#else #else
netdev_info(netdev, netdev_info(netdev,
"Speed is 25G, display not supported by this version of ethtool.\n"); "Speed is 25G, display not supported by this version of ethtool.\n");
#endif #endif
break; break;
case I40E_LINK_SPEED_20GB: case I40E_LINK_SPEED_20GB:
ethtool_cmd_speed_set(ecmd, SPEED_20000); cmd->base.speed = SPEED_20000;
break; break;
case I40E_LINK_SPEED_10GB: case I40E_LINK_SPEED_10GB:
ethtool_cmd_speed_set(ecmd, SPEED_10000); cmd->base.speed = SPEED_10000;
break; break;
case I40E_LINK_SPEED_1GB: case I40E_LINK_SPEED_1GB:
ethtool_cmd_speed_set(ecmd, SPEED_1000); cmd->base.speed = SPEED_1000;
break; break;
case I40E_LINK_SPEED_100MB: case I40E_LINK_SPEED_100MB:
ethtool_cmd_speed_set(ecmd, SPEED_100); cmd->base.speed = SPEED_100;
break; break;
default: default:
break; break;
} }
ecmd->duplex = DUPLEX_FULL; cmd->base.duplex = DUPLEX_FULL;
return 0; return 0;
} }
...@@ -643,7 +642,6 @@ static int i40evf_set_rxfh(struct net_device *netdev, const u32 *indir, ...@@ -643,7 +642,6 @@ static int i40evf_set_rxfh(struct net_device *netdev, const u32 *indir,
} }
static const struct ethtool_ops i40evf_ethtool_ops = { static const struct ethtool_ops i40evf_ethtool_ops = {
.get_settings = i40evf_get_settings,
.get_drvinfo = i40evf_get_drvinfo, .get_drvinfo = i40evf_get_drvinfo,
.get_link = ethtool_op_get_link, .get_link = ethtool_op_get_link,
.get_ringparam = i40evf_get_ringparam, .get_ringparam = i40evf_get_ringparam,
...@@ -663,6 +661,7 @@ static const struct ethtool_ops i40evf_ethtool_ops = { ...@@ -663,6 +661,7 @@ static const struct ethtool_ops i40evf_ethtool_ops = {
.set_rxfh = i40evf_set_rxfh, .set_rxfh = i40evf_set_rxfh,
.get_channels = i40evf_get_channels, .get_channels = i40evf_get_channels,
.get_rxfh_key_size = i40evf_get_rxfh_key_size, .get_rxfh_key_size = i40evf_get_rxfh_key_size,
.get_link_ksettings = i40evf_get_link_ksettings,
}; };
/** /**
......
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