diff options
author | Philippe Reynes <tremyfr@gmail.com> | 2016-12-10 09:00:48 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-12-10 17:31:44 -0500 |
commit | bfd8d977af2390e646d4a5df8e88c1d7a1ae63d9 (patch) | |
tree | 6999ff45ed4d3172ed5b2f0e719bcc7cd300beb7 | |
parent | 52986a2f926cc0de544e32005a3436bb6db39f10 (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.c | 56 |
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); | |||
116 | static const unsigned int nicvf_n_drv_stats = ARRAY_SIZE(nicvf_drv_stats); | 116 | static const unsigned int nicvf_n_drv_stats = ARRAY_SIZE(nicvf_drv_stats); |
117 | static const unsigned int nicvf_n_queue_stats = ARRAY_SIZE(nicvf_queue_stats); | 117 | static const unsigned int nicvf_n_queue_stats = ARRAY_SIZE(nicvf_queue_stats); |
118 | 118 | ||
119 | static int nicvf_get_settings(struct net_device *netdev, | 119 | static 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 | ||
772 | static const struct ethtool_ops nicvf_ethtool_ops = { | 778 | static 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 | ||
798 | void nicvf_set_ethtool_ops(struct net_device *netdev) | 804 | void nicvf_set_ethtool_ops(struct net_device *netdev) |