Skip to content

Commit bb37056

Browse files
Philippe Reynesdavem330
authored andcommitted
net: cris: eth_v10: 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 <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 5dac9ea commit bb37056

File tree

1 file changed

+20
-12
lines changed

1 file changed

+20
-12
lines changed

drivers/net/cris/eth_v10.c

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1412,31 +1412,39 @@ e100_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
14121412
return rc;
14131413
}
14141414

1415-
static int e100_get_settings(struct net_device *dev,
1416-
struct ethtool_cmd *cmd)
1415+
static int e100_get_link_ksettings(struct net_device *dev,
1416+
struct ethtool_link_ksettings *cmd)
14171417
{
14181418
struct net_local *np = netdev_priv(dev);
1419+
u32 supported;
14191420
int err;
14201421

14211422
spin_lock_irq(&np->lock);
1422-
err = mii_ethtool_gset(&np->mii_if, cmd);
1423+
err = mii_ethtool_get_link_ksettings(&np->mii_if, cmd);
14231424
spin_unlock_irq(&np->lock);
14241425

14251426
/* The PHY may support 1000baseT, but the Etrax100 does not. */
1426-
cmd->supported &= ~(SUPPORTED_1000baseT_Half
1427-
| SUPPORTED_1000baseT_Full);
1427+
ethtool_convert_link_mode_to_legacy_u32(&supported,
1428+
cmd->link_modes.supported);
1429+
1430+
supported &= ~(SUPPORTED_1000baseT_Half | SUPPORTED_1000baseT_Full);
1431+
1432+
ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,
1433+
supported);
1434+
14281435
return err;
14291436
}
14301437

1431-
static int e100_set_settings(struct net_device *dev,
1432-
struct ethtool_cmd *ecmd)
1438+
static int e100_set_link_ksettings(struct net_device *dev,
1439+
const struct ethtool_link_ksettings *ecmd)
14331440
{
1434-
if (ecmd->autoneg == AUTONEG_ENABLE) {
1441+
if (ecmd->base.autoneg == AUTONEG_ENABLE) {
14351442
e100_set_duplex(dev, autoneg);
14361443
e100_set_speed(dev, 0);
14371444
} else {
1438-
e100_set_duplex(dev, ecmd->duplex == DUPLEX_HALF ? half : full);
1439-
e100_set_speed(dev, ecmd->speed == SPEED_10 ? 10: 100);
1445+
e100_set_duplex(dev, ecmd->base.duplex == DUPLEX_HALF ?
1446+
half : full);
1447+
e100_set_speed(dev, ecmd->base.speed == SPEED_10 ? 10 : 100);
14401448
}
14411449

14421450
return 0;
@@ -1459,11 +1467,11 @@ static int e100_nway_reset(struct net_device *dev)
14591467
}
14601468

14611469
static const struct ethtool_ops e100_ethtool_ops = {
1462-
.get_settings = e100_get_settings,
1463-
.set_settings = e100_set_settings,
14641470
.get_drvinfo = e100_get_drvinfo,
14651471
.nway_reset = e100_nway_reset,
14661472
.get_link = ethtool_op_get_link,
1473+
.get_link_ksettings = e100_get_link_ksettings,
1474+
.set_link_ksettings = e100_set_link_ksettings,
14671475
};
14681476

14691477
static int

0 commit comments

Comments
 (0)