aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/atl1c/atl1c_ethtool.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/atl1c/atl1c_ethtool.c')
-rw-r--r--drivers/net/atl1c/atl1c_ethtool.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/drivers/net/atl1c/atl1c_ethtool.c b/drivers/net/atl1c/atl1c_ethtool.c
index 7c521508313c..7be884d0aaf6 100644
--- a/drivers/net/atl1c/atl1c_ethtool.c
+++ b/drivers/net/atl1c/atl1c_ethtool.c
@@ -50,13 +50,13 @@ static int atl1c_get_settings(struct net_device *netdev,
50 ecmd->transceiver = XCVR_INTERNAL; 50 ecmd->transceiver = XCVR_INTERNAL;
51 51
52 if (adapter->link_speed != SPEED_0) { 52 if (adapter->link_speed != SPEED_0) {
53 ecmd->speed = adapter->link_speed; 53 ethtool_cmd_speed_set(ecmd, adapter->link_speed);
54 if (adapter->link_duplex == FULL_DUPLEX) 54 if (adapter->link_duplex == FULL_DUPLEX)
55 ecmd->duplex = DUPLEX_FULL; 55 ecmd->duplex = DUPLEX_FULL;
56 else 56 else
57 ecmd->duplex = DUPLEX_HALF; 57 ecmd->duplex = DUPLEX_HALF;
58 } else { 58 } else {
59 ecmd->speed = -1; 59 ethtool_cmd_speed_set(ecmd, -1);
60 ecmd->duplex = -1; 60 ecmd->duplex = -1;
61 } 61 }
62 62
@@ -77,7 +77,8 @@ static int atl1c_set_settings(struct net_device *netdev,
77 if (ecmd->autoneg == AUTONEG_ENABLE) { 77 if (ecmd->autoneg == AUTONEG_ENABLE) {
78 autoneg_advertised = ADVERTISED_Autoneg; 78 autoneg_advertised = ADVERTISED_Autoneg;
79 } else { 79 } else {
80 if (ecmd->speed == SPEED_1000) { 80 u32 speed = ethtool_cmd_speed(ecmd);
81 if (speed == SPEED_1000) {
81 if (ecmd->duplex != DUPLEX_FULL) { 82 if (ecmd->duplex != DUPLEX_FULL) {
82 if (netif_msg_link(adapter)) 83 if (netif_msg_link(adapter))
83 dev_warn(&adapter->pdev->dev, 84 dev_warn(&adapter->pdev->dev,
@@ -86,7 +87,7 @@ static int atl1c_set_settings(struct net_device *netdev,
86 return -EINVAL; 87 return -EINVAL;
87 } 88 }
88 autoneg_advertised = ADVERTISED_1000baseT_Full; 89 autoneg_advertised = ADVERTISED_1000baseT_Full;
89 } else if (ecmd->speed == SPEED_100) { 90 } else if (speed == SPEED_100) {
90 if (ecmd->duplex == DUPLEX_FULL) 91 if (ecmd->duplex == DUPLEX_FULL)
91 autoneg_advertised = ADVERTISED_100baseT_Full; 92 autoneg_advertised = ADVERTISED_100baseT_Full;
92 else 93 else
@@ -113,11 +114,6 @@ static int atl1c_set_settings(struct net_device *netdev,
113 return 0; 114 return 0;
114} 115}
115 116
116static u32 atl1c_get_tx_csum(struct net_device *netdev)
117{
118 return (netdev->features & NETIF_F_HW_CSUM) != 0;
119}
120
121static u32 atl1c_get_msglevel(struct net_device *netdev) 117static u32 atl1c_get_msglevel(struct net_device *netdev)
122{ 118{
123 struct atl1c_adapter *adapter = netdev_priv(netdev); 119 struct atl1c_adapter *adapter = netdev_priv(netdev);
@@ -307,9 +303,6 @@ static const struct ethtool_ops atl1c_ethtool_ops = {
307 .get_link = ethtool_op_get_link, 303 .get_link = ethtool_op_get_link,
308 .get_eeprom_len = atl1c_get_eeprom_len, 304 .get_eeprom_len = atl1c_get_eeprom_len,
309 .get_eeprom = atl1c_get_eeprom, 305 .get_eeprom = atl1c_get_eeprom,
310 .get_tx_csum = atl1c_get_tx_csum,
311 .get_sg = ethtool_op_get_sg,
312 .set_sg = ethtool_op_set_sg,
313}; 306};
314 307
315void atl1c_set_ethtool_ops(struct net_device *netdev) 308void atl1c_set_ethtool_ops(struct net_device *netdev)