@@ -1442,56 +1442,60 @@ static int bcm_enet_nway_reset(struct net_device *dev)
1442
1442
return - EOPNOTSUPP ;
1443
1443
}
1444
1444
1445
- static int bcm_enet_get_settings (struct net_device * dev ,
1446
- struct ethtool_cmd * cmd )
1445
+ static int bcm_enet_get_link_ksettings (struct net_device * dev ,
1446
+ struct ethtool_link_ksettings * cmd )
1447
1447
{
1448
1448
struct bcm_enet_priv * priv ;
1449
+ u32 supported , advertising ;
1449
1450
1450
1451
priv = netdev_priv (dev );
1451
1452
1452
- cmd -> maxrxpkt = 0 ;
1453
- cmd -> maxtxpkt = 0 ;
1454
-
1455
1453
if (priv -> has_phy ) {
1456
1454
if (!dev -> phydev )
1457
1455
return - ENODEV ;
1458
- return phy_ethtool_gset (dev -> phydev , cmd );
1456
+ return phy_ethtool_ksettings_get (dev -> phydev , cmd );
1459
1457
} else {
1460
- cmd -> autoneg = 0 ;
1461
- ethtool_cmd_speed_set ( cmd , (( priv -> force_speed_100 )
1462
- ? SPEED_100 : SPEED_10 )) ;
1463
- cmd -> duplex = (priv -> force_duplex_full ) ?
1458
+ cmd -> base . autoneg = 0 ;
1459
+ cmd -> base . speed = ( priv -> force_speed_100 ) ?
1460
+ SPEED_100 : SPEED_10 ;
1461
+ cmd -> base . duplex = (priv -> force_duplex_full ) ?
1464
1462
DUPLEX_FULL : DUPLEX_HALF ;
1465
- cmd -> supported = ADVERTISED_10baseT_Half |
1463
+ supported = ADVERTISED_10baseT_Half |
1466
1464
ADVERTISED_10baseT_Full |
1467
1465
ADVERTISED_100baseT_Half |
1468
1466
ADVERTISED_100baseT_Full ;
1469
- cmd -> advertising = 0 ;
1470
- cmd -> port = PORT_MII ;
1471
- cmd -> transceiver = XCVR_EXTERNAL ;
1467
+ advertising = 0 ;
1468
+ ethtool_convert_legacy_u32_to_link_mode (
1469
+ cmd -> link_modes .supported , supported );
1470
+ ethtool_convert_legacy_u32_to_link_mode (
1471
+ cmd -> link_modes .advertising , advertising );
1472
+ cmd -> base .port = PORT_MII ;
1472
1473
}
1473
1474
return 0 ;
1474
1475
}
1475
1476
1476
- static int bcm_enet_set_settings (struct net_device * dev ,
1477
- struct ethtool_cmd * cmd )
1477
+ static int bcm_enet_set_link_ksettings (struct net_device * dev ,
1478
+ const struct ethtool_link_ksettings * cmd )
1478
1479
{
1479
1480
struct bcm_enet_priv * priv ;
1480
1481
1481
1482
priv = netdev_priv (dev );
1482
1483
if (priv -> has_phy ) {
1483
1484
if (!dev -> phydev )
1484
1485
return - ENODEV ;
1485
- return phy_ethtool_sset (dev -> phydev , cmd );
1486
+ return phy_ethtool_ksettings_set (dev -> phydev , cmd );
1486
1487
} else {
1487
1488
1488
- if (cmd -> autoneg ||
1489
- (cmd -> speed != SPEED_100 && cmd -> speed != SPEED_10 ) ||
1490
- cmd -> port != PORT_MII )
1489
+ if (cmd -> base .autoneg ||
1490
+ (cmd -> base .speed != SPEED_100 &&
1491
+ cmd -> base .speed != SPEED_10 ) ||
1492
+ cmd -> base .port != PORT_MII )
1491
1493
return - EINVAL ;
1492
1494
1493
- priv -> force_speed_100 = (cmd -> speed == SPEED_100 ) ? 1 : 0 ;
1494
- priv -> force_duplex_full = (cmd -> duplex == DUPLEX_FULL ) ? 1 : 0 ;
1495
+ priv -> force_speed_100 =
1496
+ (cmd -> base .speed == SPEED_100 ) ? 1 : 0 ;
1497
+ priv -> force_duplex_full =
1498
+ (cmd -> base .duplex == DUPLEX_FULL ) ? 1 : 0 ;
1495
1499
1496
1500
if (netif_running (dev ))
1497
1501
bcm_enet_adjust_link (dev );
@@ -1585,14 +1589,14 @@ static const struct ethtool_ops bcm_enet_ethtool_ops = {
1585
1589
.get_sset_count = bcm_enet_get_sset_count ,
1586
1590
.get_ethtool_stats = bcm_enet_get_ethtool_stats ,
1587
1591
.nway_reset = bcm_enet_nway_reset ,
1588
- .get_settings = bcm_enet_get_settings ,
1589
- .set_settings = bcm_enet_set_settings ,
1590
1592
.get_drvinfo = bcm_enet_get_drvinfo ,
1591
1593
.get_link = ethtool_op_get_link ,
1592
1594
.get_ringparam = bcm_enet_get_ringparam ,
1593
1595
.set_ringparam = bcm_enet_set_ringparam ,
1594
1596
.get_pauseparam = bcm_enet_get_pauseparam ,
1595
1597
.set_pauseparam = bcm_enet_set_pauseparam ,
1598
+ .get_link_ksettings = bcm_enet_get_link_ksettings ,
1599
+ .set_link_ksettings = bcm_enet_set_link_ksettings ,
1596
1600
};
1597
1601
1598
1602
static int bcm_enet_ioctl (struct net_device * dev , struct ifreq * rq , int cmd )
0 commit comments