aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilippe Reynes <tremyfr@gmail.com>2016-12-10 09:00:48 -0500
committerDavid S. Miller <davem@davemloft.net>2016-12-10 17:31:44 -0500
commitbfd8d977af2390e646d4a5df8e88c1d7a1ae63d9 (patch)
tree6999ff45ed4d3172ed5b2f0e719bcc7cd300beb7
parent52986a2f926cc0de544e32005a3436bb6db39f10 (diff)
net: nicvf: 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. Signed-off-by: Philippe Reynes <tremyfr@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c56
1 files changed, 31 insertions, 25 deletions
diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c b/drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
index b0482410052d..2e74bbaa38e1 100644
--- a/drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
+++ b/drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
@@ -116,33 +116,34 @@ static const unsigned int nicvf_n_hw_stats = ARRAY_SIZE(nicvf_hw_stats);
116static const unsigned int nicvf_n_drv_stats = ARRAY_SIZE(nicvf_drv_stats); 116static const unsigned int nicvf_n_drv_stats = ARRAY_SIZE(nicvf_drv_stats);
117static const unsigned int nicvf_n_queue_stats = ARRAY_SIZE(nicvf_queue_stats); 117static const unsigned int nicvf_n_queue_stats = ARRAY_SIZE(nicvf_queue_stats);
118 118
119static int nicvf_get_settings(struct net_device *netdev, 119static int nicvf_get_link_ksettings(struct net_device *netdev,
120 struct ethtool_cmd *cmd) 120 struct ethtool_link_ksettings *cmd)
121{ 121{
122 struct nicvf *nic = netdev_priv(netdev); 122 struct nicvf *nic = netdev_priv(netdev);
123 u32 supported, advertising;
123 124
124 cmd->supported = 0; 125 supported = 0;
125 cmd->transceiver = XCVR_EXTERNAL; 126 advertising = 0;
126 127
127 if (!nic->link_up) { 128 if (!nic->link_up) {
128 cmd->duplex = DUPLEX_UNKNOWN; 129 cmd->base.duplex = DUPLEX_UNKNOWN;
129 ethtool_cmd_speed_set(cmd, SPEED_UNKNOWN); 130 cmd->base.speed = SPEED_UNKNOWN;
130 return 0; 131 return 0;
131 } 132 }
132 133
133 switch (nic->speed) { 134 switch (nic->speed) {
134 case SPEED_1000: 135 case SPEED_1000:
135 cmd->port = PORT_MII | PORT_TP; 136 cmd->base.port = PORT_MII | PORT_TP;
136 cmd->autoneg = AUTONEG_ENABLE; 137 cmd->base.autoneg = AUTONEG_ENABLE;
137 cmd->supported |= SUPPORTED_MII | SUPPORTED_TP; 138 supported |= SUPPORTED_MII | SUPPORTED_TP;
138 cmd->supported |= SUPPORTED_1000baseT_Full | 139 supported |= SUPPORTED_1000baseT_Full |
139 SUPPORTED_1000baseT_Half | 140 SUPPORTED_1000baseT_Half |
140 SUPPORTED_100baseT_Full | 141 SUPPORTED_100baseT_Full |
141 SUPPORTED_100baseT_Half | 142 SUPPORTED_100baseT_Half |
142 SUPPORTED_10baseT_Full | 143 SUPPORTED_10baseT_Full |
143 SUPPORTED_10baseT_Half; 144 SUPPORTED_10baseT_Half;
144 cmd->supported |= SUPPORTED_Autoneg; 145 supported |= SUPPORTED_Autoneg;
145 cmd->advertising |= ADVERTISED_1000baseT_Full | 146 advertising |= ADVERTISED_1000baseT_Full |
146 ADVERTISED_1000baseT_Half | 147 ADVERTISED_1000baseT_Half |
147 ADVERTISED_100baseT_Full | 148 ADVERTISED_100baseT_Full |
148 ADVERTISED_100baseT_Half | 149 ADVERTISED_100baseT_Half |
@@ -151,24 +152,29 @@ static int nicvf_get_settings(struct net_device *netdev,
151 break; 152 break;
152 case SPEED_10000: 153 case SPEED_10000:
153 if (nic->mac_type == BGX_MODE_RXAUI) { 154 if (nic->mac_type == BGX_MODE_RXAUI) {
154 cmd->port = PORT_TP; 155 cmd->base.port = PORT_TP;
155 cmd->supported |= SUPPORTED_TP; 156 supported |= SUPPORTED_TP;
156 } else { 157 } else {
157 cmd->port = PORT_FIBRE; 158 cmd->base.port = PORT_FIBRE;
158 cmd->supported |= SUPPORTED_FIBRE; 159 supported |= SUPPORTED_FIBRE;
159 } 160 }
160 cmd->autoneg = AUTONEG_DISABLE; 161 cmd->base.autoneg = AUTONEG_DISABLE;
161 cmd->supported |= SUPPORTED_10000baseT_Full; 162 supported |= SUPPORTED_10000baseT_Full;
162 break; 163 break;
163 case SPEED_40000: 164 case SPEED_40000:
164 cmd->port = PORT_FIBRE; 165 cmd->base.port = PORT_FIBRE;
165 cmd->autoneg = AUTONEG_DISABLE; 166 cmd->base.autoneg = AUTONEG_DISABLE;
166 cmd->supported |= SUPPORTED_FIBRE; 167 supported |= SUPPORTED_FIBRE;
167 cmd->supported |= SUPPORTED_40000baseCR4_Full; 168 supported |= SUPPORTED_40000baseCR4_Full;
168 break; 169 break;
169 } 170 }
170 cmd->duplex = nic->duplex; 171 cmd->base.duplex = nic->duplex;
171 ethtool_cmd_speed_set(cmd, nic->speed); 172 cmd->base.speed = nic->speed;
173
174 ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,
175 supported);
176 ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,
177 advertising);
172 178
173 return 0; 179 return 0;
174} 180}
@@ -770,7 +776,6 @@ static int nicvf_set_pauseparam(struct net_device *dev,
770} 776}
771 777
772static const struct ethtool_ops nicvf_ethtool_ops = { 778static const struct ethtool_ops nicvf_ethtool_ops = {
773 .get_settings = nicvf_get_settings,
774 .get_link = nicvf_get_link, 779 .get_link = nicvf_get_link,
775 .get_drvinfo = nicvf_get_drvinfo, 780 .get_drvinfo = nicvf_get_drvinfo,
776 .get_msglevel = nicvf_get_msglevel, 781 .get_msglevel = nicvf_get_msglevel,
@@ -793,6 +798,7 @@ static const struct ethtool_ops nicvf_ethtool_ops = {
793 .get_pauseparam = nicvf_get_pauseparam, 798 .get_pauseparam = nicvf_get_pauseparam,
794 .set_pauseparam = nicvf_set_pauseparam, 799 .set_pauseparam = nicvf_set_pauseparam,
795 .get_ts_info = ethtool_op_get_ts_info, 800 .get_ts_info = ethtool_op_get_ts_info,
801 .get_link_ksettings = nicvf_get_link_ksettings,
796}; 802};
797 803
798void nicvf_set_ethtool_ops(struct net_device *netdev) 804void nicvf_set_ethtool_ops(struct net_device *netdev)