Commit de48015054fa697f647826ecee94d8f34633809f
Committed by
David S. Miller
1 parent
6fa1ba6152
net: rocker: 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> Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 1 changed file with 32 additions and 23 deletions Side-by-side Diff
drivers/net/ethernet/rocker/rocker_main.c
... | ... | @@ -1115,7 +1115,7 @@ |
1115 | 1115 | const struct rocker_desc_info *desc_info, |
1116 | 1116 | void *priv) |
1117 | 1117 | { |
1118 | - struct ethtool_cmd *ecmd = priv; | |
1118 | + struct ethtool_link_ksettings *ecmd = priv; | |
1119 | 1119 | const struct rocker_tlv *attrs[ROCKER_TLV_CMD_MAX + 1]; |
1120 | 1120 | const struct rocker_tlv *info_attrs[ROCKER_TLV_CMD_PORT_SETTINGS_MAX + 1]; |
1121 | 1121 | u32 speed; |
1122 | 1122 | |
... | ... | @@ -1137,14 +1137,15 @@ |
1137 | 1137 | duplex = rocker_tlv_get_u8(info_attrs[ROCKER_TLV_CMD_PORT_SETTINGS_DUPLEX]); |
1138 | 1138 | autoneg = rocker_tlv_get_u8(info_attrs[ROCKER_TLV_CMD_PORT_SETTINGS_AUTONEG]); |
1139 | 1139 | |
1140 | - ecmd->transceiver = XCVR_INTERNAL; | |
1141 | - ecmd->supported = SUPPORTED_TP; | |
1142 | - ecmd->phy_address = 0xff; | |
1143 | - ecmd->port = PORT_TP; | |
1144 | - ethtool_cmd_speed_set(ecmd, speed); | |
1145 | - ecmd->duplex = duplex ? DUPLEX_FULL : DUPLEX_HALF; | |
1146 | - ecmd->autoneg = autoneg ? AUTONEG_ENABLE : AUTONEG_DISABLE; | |
1140 | + ethtool_link_ksettings_zero_link_mode(ecmd, supported); | |
1141 | + ethtool_link_ksettings_add_link_mode(ecmd, supported, TP); | |
1147 | 1142 | |
1143 | + ecmd->base.phy_address = 0xff; | |
1144 | + ecmd->base.port = PORT_TP; | |
1145 | + ecmd->base.speed = speed; | |
1146 | + ecmd->base.duplex = duplex ? DUPLEX_FULL : DUPLEX_HALF; | |
1147 | + ecmd->base.autoneg = autoneg ? AUTONEG_ENABLE : AUTONEG_DISABLE; | |
1148 | + | |
1148 | 1149 | return 0; |
1149 | 1150 | } |
1150 | 1151 | |
... | ... | @@ -1250,7 +1251,7 @@ |
1250 | 1251 | struct rocker_desc_info *desc_info, |
1251 | 1252 | void *priv) |
1252 | 1253 | { |
1253 | - struct ethtool_cmd *ecmd = priv; | |
1254 | + struct ethtool_link_ksettings *ecmd = priv; | |
1254 | 1255 | struct rocker_tlv *cmd_info; |
1255 | 1256 | |
1256 | 1257 | if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, |
1257 | 1258 | |
1258 | 1259 | |
... | ... | @@ -1263,13 +1264,13 @@ |
1263 | 1264 | rocker_port->pport)) |
1264 | 1265 | return -EMSGSIZE; |
1265 | 1266 | if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_SPEED, |
1266 | - ethtool_cmd_speed(ecmd))) | |
1267 | + ecmd->base.speed)) | |
1267 | 1268 | return -EMSGSIZE; |
1268 | 1269 | if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_DUPLEX, |
1269 | - ecmd->duplex)) | |
1270 | + ecmd->base.duplex)) | |
1270 | 1271 | return -EMSGSIZE; |
1271 | 1272 | if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_AUTONEG, |
1272 | - ecmd->autoneg)) | |
1273 | + ecmd->base.autoneg)) | |
1273 | 1274 | return -EMSGSIZE; |
1274 | 1275 | rocker_tlv_nest_end(desc_info, cmd_info); |
1275 | 1276 | return 0; |
... | ... | @@ -1347,8 +1348,9 @@ |
1347 | 1348 | return 0; |
1348 | 1349 | } |
1349 | 1350 | |
1350 | -static int rocker_cmd_get_port_settings_ethtool(struct rocker_port *rocker_port, | |
1351 | - struct ethtool_cmd *ecmd) | |
1351 | +static int | |
1352 | +rocker_cmd_get_port_settings_ethtool(struct rocker_port *rocker_port, | |
1353 | + struct ethtool_link_ksettings *ecmd) | |
1352 | 1354 | { |
1353 | 1355 | return rocker_cmd_exec(rocker_port, false, |
1354 | 1356 | rocker_cmd_get_port_settings_prep, NULL, |
1355 | 1357 | |
1356 | 1358 | |
... | ... | @@ -1373,12 +1375,17 @@ |
1373 | 1375 | rocker_cmd_get_port_settings_mode_proc, p_mode); |
1374 | 1376 | } |
1375 | 1377 | |
1376 | -static int rocker_cmd_set_port_settings_ethtool(struct rocker_port *rocker_port, | |
1377 | - struct ethtool_cmd *ecmd) | |
1378 | +static int | |
1379 | +rocker_cmd_set_port_settings_ethtool(struct rocker_port *rocker_port, | |
1380 | + const struct ethtool_link_ksettings *ecmd) | |
1378 | 1381 | { |
1382 | + struct ethtool_link_ksettings copy_ecmd; | |
1383 | + | |
1384 | + memcpy(©_ecmd, ecmd, sizeof(copy_ecmd)); | |
1385 | + | |
1379 | 1386 | return rocker_cmd_exec(rocker_port, false, |
1380 | 1387 | rocker_cmd_set_port_settings_ethtool_prep, |
1381 | - ecmd, NULL, NULL); | |
1388 | + ©_ecmd, NULL, NULL); | |
1382 | 1389 | } |
1383 | 1390 | |
1384 | 1391 | static int rocker_cmd_set_port_settings_macaddr(struct rocker_port *rocker_port, |
1385 | 1392 | |
... | ... | @@ -2237,16 +2244,18 @@ |
2237 | 2244 | * ethtool interface |
2238 | 2245 | ********************/ |
2239 | 2246 | |
2240 | -static int rocker_port_get_settings(struct net_device *dev, | |
2241 | - struct ethtool_cmd *ecmd) | |
2247 | +static int | |
2248 | +rocker_port_get_link_ksettings(struct net_device *dev, | |
2249 | + struct ethtool_link_ksettings *ecmd) | |
2242 | 2250 | { |
2243 | 2251 | struct rocker_port *rocker_port = netdev_priv(dev); |
2244 | 2252 | |
2245 | 2253 | return rocker_cmd_get_port_settings_ethtool(rocker_port, ecmd); |
2246 | 2254 | } |
2247 | 2255 | |
2248 | -static int rocker_port_set_settings(struct net_device *dev, | |
2249 | - struct ethtool_cmd *ecmd) | |
2256 | +static int | |
2257 | +rocker_port_set_link_ksettings(struct net_device *dev, | |
2258 | + const struct ethtool_link_ksettings *ecmd) | |
2250 | 2259 | { |
2251 | 2260 | struct rocker_port *rocker_port = netdev_priv(dev); |
2252 | 2261 | |
2253 | 2262 | |
... | ... | @@ -2388,13 +2397,13 @@ |
2388 | 2397 | } |
2389 | 2398 | |
2390 | 2399 | static const struct ethtool_ops rocker_port_ethtool_ops = { |
2391 | - .get_settings = rocker_port_get_settings, | |
2392 | - .set_settings = rocker_port_set_settings, | |
2393 | 2400 | .get_drvinfo = rocker_port_get_drvinfo, |
2394 | 2401 | .get_link = ethtool_op_get_link, |
2395 | 2402 | .get_strings = rocker_port_get_strings, |
2396 | 2403 | .get_ethtool_stats = rocker_port_get_stats, |
2397 | 2404 | .get_sset_count = rocker_port_get_sset_count, |
2405 | + .get_link_ksettings = rocker_port_get_link_ksettings, | |
2406 | + .set_link_ksettings = rocker_port_set_link_ksettings, | |
2398 | 2407 | }; |
2399 | 2408 | |
2400 | 2409 | /***************** |