Merge branch 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/linville...
[safe/jmp/linux-2.6] / drivers / net / atl1e / atl1e_ethtool.c
index cdc3b85..a76006c 100644 (file)
@@ -131,11 +131,6 @@ static int atl1e_set_settings(struct net_device *netdev,
        return 0;
 }
 
-static u32 atl1e_get_tx_csum(struct net_device *netdev)
-{
-       return (netdev->features & NETIF_F_HW_CSUM) != 0;
-}
-
 static u32 atl1e_get_msglevel(struct net_device *netdev)
 {
 #ifdef DBG
@@ -145,10 +140,6 @@ static u32 atl1e_get_msglevel(struct net_device *netdev)
 #endif
 }
 
-static void atl1e_set_msglevel(struct net_device *netdev, u32 data)
-{
-}
-
 static int atl1e_get_regs_len(struct net_device *netdev)
 {
        return AT_REGS_LEN * sizeof(u32);
@@ -355,7 +346,7 @@ static int atl1e_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
        struct atl1e_adapter *adapter = netdev_priv(netdev);
 
        if (wol->wolopts & (WAKE_ARP | WAKE_MAGICSECURE |
-                           WAKE_MCAST | WAKE_BCAST | WAKE_MCAST))
+                           WAKE_UCAST | WAKE_MCAST | WAKE_BCAST))
                return -EOPNOTSUPP;
        /* these settings will always override what we currently have */
        adapter->wol = 0;
@@ -365,6 +356,8 @@ static int atl1e_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
        if (wol->wolopts & WAKE_PHY)
                adapter->wol |= AT_WUFC_LNKC;
 
+       device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol);
+
        return 0;
 }
 
@@ -376,7 +369,7 @@ static int atl1e_nway_reset(struct net_device *netdev)
        return 0;
 }
 
-static struct ethtool_ops atl1e_ethtool_ops = {
+static const struct ethtool_ops atl1e_ethtool_ops = {
        .get_settings           = atl1e_get_settings,
        .set_settings           = atl1e_set_settings,
        .get_drvinfo            = atl1e_get_drvinfo,
@@ -385,18 +378,14 @@ static struct ethtool_ops atl1e_ethtool_ops = {
        .get_wol                = atl1e_get_wol,
        .set_wol                = atl1e_set_wol,
        .get_msglevel           = atl1e_get_msglevel,
-       .set_msglevel           = atl1e_set_msglevel,
        .nway_reset             = atl1e_nway_reset,
        .get_link               = ethtool_op_get_link,
        .get_eeprom_len         = atl1e_get_eeprom_len,
        .get_eeprom             = atl1e_get_eeprom,
        .set_eeprom             = atl1e_set_eeprom,
-       .get_tx_csum            = atl1e_get_tx_csum,
-       .get_sg                 = ethtool_op_get_sg,
+       .set_tx_csum            = ethtool_op_set_tx_hw_csum,
        .set_sg                 = ethtool_op_set_sg,
-#ifdef NETIF_F_TSO
-       .get_tso                = ethtool_op_get_tso,
-#endif
+       .set_tso                = ethtool_op_set_tso,
 };
 
 void atl1e_set_ethtool_ops(struct net_device *netdev)