net: typhoon: convert to hw_features
authorMichał Mirosław <mirq-linux@rere.qmqm.pl>
Sun, 17 Apr 2011 00:15:47 +0000 (00:15 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 18 Apr 2011 00:47:34 +0000 (17:47 -0700)
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/typhoon.c

index 82653cb07857fa91ce46a9a5c79c6dee7057c942..119c394f71cea1328a0523853e7aec5883512d13 100644 (file)
@@ -1144,28 +1144,6 @@ typhoon_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
        return 0;
 }
 
-static u32
-typhoon_get_rx_csum(struct net_device *dev)
-{
-       /* For now, we don't allow turning off RX checksums.
-        */
-       return 1;
-}
-
-static int
-typhoon_set_flags(struct net_device *dev, u32 data)
-{
-       /* There's no way to turn off the RX VLAN offloading and stripping
-        * on the current 3XP firmware -- it does not respect the offload
-        * settings -- so we only allow the user to toggle the TX processing.
-        */
-       if (!(data & ETH_FLAG_RXVLAN))
-               return -EINVAL;
-
-       return ethtool_op_set_flags(dev, data,
-                                   ETH_FLAG_RXVLAN | ETH_FLAG_TXVLAN);
-}
-
 static void
 typhoon_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering)
 {
@@ -1187,13 +1165,7 @@ static const struct ethtool_ops typhoon_ethtool_ops = {
        .get_wol                = typhoon_get_wol,
        .set_wol                = typhoon_set_wol,
        .get_link               = ethtool_op_get_link,
-       .get_rx_csum            = typhoon_get_rx_csum,
-       .set_tx_csum            = ethtool_op_set_tx_csum,
-       .set_sg                 = ethtool_op_set_sg,
-       .set_tso                = ethtool_op_set_tso,
        .get_ringparam          = typhoon_get_ringparam,
-       .set_flags              = typhoon_set_flags,
-       .get_flags              = ethtool_op_get_flags,
 };
 
 static int
@@ -2482,10 +2454,15 @@ typhoon_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 
        /* We can handle scatter gather, up to 16 entries, and
         * we can do IP checksumming (only version 4, doh...)
+        *
+        * There's no way to turn off the RX VLAN offloading and stripping
+        * on the current 3XP firmware -- it does not respect the offload
+        * settings -- so we only allow the user to toggle the TX processing.
         */
-       dev->features |= NETIF_F_SG | NETIF_F_IP_CSUM;
-       dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
-       dev->features |= NETIF_F_TSO;
+       dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
+               NETIF_F_HW_VLAN_TX;
+       dev->features = dev->hw_features |
+               NETIF_F_HW_VLAN_RX | NETIF_F_RXCSUM;
 
        if(register_netdev(dev) < 0) {
                err_msg = "unable to register netdev";