aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorPhilippe Reynes <tremyfr@gmail.com>2017-02-05 17:55:19 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2017-03-21 18:51:39 -0400
commit1120ecd5aa38c385e747b8fb300d5597dcb2d19c (patch)
tree99841fb01bfecb1fe73fd4e302ec360315b9a717 /drivers
parentc19153008ba0f7b86234820e8a87d58806707a15 (diff)
igbvf: 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: Philippe Reynes <tremyfr@gmail.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/intel/igbvf/ethtool.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/drivers/net/ethernet/intel/igbvf/ethtool.c b/drivers/net/ethernet/intel/igbvf/ethtool.c
index 8dea1b1367ef..34faa113a8a0 100644
--- a/drivers/net/ethernet/intel/igbvf/ethtool.c
+++ b/drivers/net/ethernet/intel/igbvf/ethtool.c
@@ -71,45 +71,45 @@ static const char igbvf_gstrings_test[][ETH_GSTRING_LEN] = {
71 71
72#define IGBVF_TEST_LEN ARRAY_SIZE(igbvf_gstrings_test) 72#define IGBVF_TEST_LEN ARRAY_SIZE(igbvf_gstrings_test)
73 73
74static int igbvf_get_settings(struct net_device *netdev, 74static int igbvf_get_link_ksettings(struct net_device *netdev,
75 struct ethtool_cmd *ecmd) 75 struct ethtool_link_ksettings *cmd)
76{ 76{
77 struct igbvf_adapter *adapter = netdev_priv(netdev); 77 struct igbvf_adapter *adapter = netdev_priv(netdev);
78 struct e1000_hw *hw = &adapter->hw; 78 struct e1000_hw *hw = &adapter->hw;
79 u32 status; 79 u32 status;
80 80
81 ecmd->supported = SUPPORTED_1000baseT_Full; 81 ethtool_link_ksettings_zero_link_mode(cmd, supported);
82 ethtool_link_ksettings_add_link_mode(cmd, supported, 1000baseT_Full);
83 ethtool_link_ksettings_zero_link_mode(cmd, advertising);
84 ethtool_link_ksettings_add_link_mode(cmd, advertising, 1000baseT_Full);
82 85
83 ecmd->advertising = ADVERTISED_1000baseT_Full; 86 cmd->base.port = -1;
84
85 ecmd->port = -1;
86 ecmd->transceiver = XCVR_DUMMY1;
87 87
88 status = er32(STATUS); 88 status = er32(STATUS);
89 if (status & E1000_STATUS_LU) { 89 if (status & E1000_STATUS_LU) {
90 if (status & E1000_STATUS_SPEED_1000) 90 if (status & E1000_STATUS_SPEED_1000)
91 ethtool_cmd_speed_set(ecmd, SPEED_1000); 91 cmd->base.speed = SPEED_1000;
92 else if (status & E1000_STATUS_SPEED_100) 92 else if (status & E1000_STATUS_SPEED_100)
93 ethtool_cmd_speed_set(ecmd, SPEED_100); 93 cmd->base.speed = SPEED_100;
94 else 94 else
95 ethtool_cmd_speed_set(ecmd, SPEED_10); 95 cmd->base.speed = SPEED_10;
96 96
97 if (status & E1000_STATUS_FD) 97 if (status & E1000_STATUS_FD)
98 ecmd->duplex = DUPLEX_FULL; 98 cmd->base.duplex = DUPLEX_FULL;
99 else 99 else
100 ecmd->duplex = DUPLEX_HALF; 100 cmd->base.duplex = DUPLEX_HALF;
101 } else { 101 } else {
102 ethtool_cmd_speed_set(ecmd, SPEED_UNKNOWN); 102 cmd->base.speed = SPEED_UNKNOWN;
103 ecmd->duplex = DUPLEX_UNKNOWN; 103 cmd->base.duplex = DUPLEX_UNKNOWN;
104 } 104 }
105 105
106 ecmd->autoneg = AUTONEG_DISABLE; 106 cmd->base.autoneg = AUTONEG_DISABLE;
107 107
108 return 0; 108 return 0;
109} 109}
110 110
111static int igbvf_set_settings(struct net_device *netdev, 111static int igbvf_set_link_ksettings(struct net_device *netdev,
112 struct ethtool_cmd *ecmd) 112 const struct ethtool_link_ksettings *cmd)
113{ 113{
114 return -EOPNOTSUPP; 114 return -EOPNOTSUPP;
115} 115}
@@ -443,8 +443,6 @@ static void igbvf_get_strings(struct net_device *netdev, u32 stringset,
443} 443}
444 444
445static const struct ethtool_ops igbvf_ethtool_ops = { 445static const struct ethtool_ops igbvf_ethtool_ops = {
446 .get_settings = igbvf_get_settings,
447 .set_settings = igbvf_set_settings,
448 .get_drvinfo = igbvf_get_drvinfo, 446 .get_drvinfo = igbvf_get_drvinfo,
449 .get_regs_len = igbvf_get_regs_len, 447 .get_regs_len = igbvf_get_regs_len,
450 .get_regs = igbvf_get_regs, 448 .get_regs = igbvf_get_regs,
@@ -467,6 +465,8 @@ static const struct ethtool_ops igbvf_ethtool_ops = {
467 .get_ethtool_stats = igbvf_get_ethtool_stats, 465 .get_ethtool_stats = igbvf_get_ethtool_stats,
468 .get_coalesce = igbvf_get_coalesce, 466 .get_coalesce = igbvf_get_coalesce,
469 .set_coalesce = igbvf_set_coalesce, 467 .set_coalesce = igbvf_set_coalesce,
468 .get_link_ksettings = igbvf_get_link_ksettings,
469 .set_link_ksettings = igbvf_set_link_ksettings,
470}; 470};
471 471
472void igbvf_set_ethtool_ops(struct net_device *netdev) 472void igbvf_set_ethtool_ops(struct net_device *netdev)