net: ibm_newemac: 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:36 +0000 (17:47 -0700)
Side effect: allow toggling of TX offloads.

Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ibm_newemac/core.c

index 3bb990b6651afb248c478639a60fecadb0af8608..079450fe5e96d040b4c35edd270e94abfba4a842 100644 (file)
@@ -2053,13 +2053,6 @@ static void emac_ethtool_get_pauseparam(struct net_device *ndev,
        mutex_unlock(&dev->link_lock);
 }
 
-static u32 emac_ethtool_get_rx_csum(struct net_device *ndev)
-{
-       struct emac_instance *dev = netdev_priv(ndev);
-
-       return dev->tah_dev != NULL;
-}
-
 static int emac_get_regs_len(struct emac_instance *dev)
 {
        if (emac_has_feature(dev, EMAC_FTR_EMAC4))
@@ -2203,15 +2196,11 @@ static const struct ethtool_ops emac_ethtool_ops = {
        .get_ringparam = emac_ethtool_get_ringparam,
        .get_pauseparam = emac_ethtool_get_pauseparam,
 
-       .get_rx_csum = emac_ethtool_get_rx_csum,
-
        .get_strings = emac_ethtool_get_strings,
        .get_sset_count = emac_ethtool_get_sset_count,
        .get_ethtool_stats = emac_ethtool_get_ethtool_stats,
 
        .get_link = ethtool_op_get_link,
-       .get_tx_csum = ethtool_op_get_tx_csum,
-       .get_sg = ethtool_op_get_sg,
 };
 
 static int emac_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
@@ -2859,8 +2848,10 @@ static int __devinit emac_probe(struct platform_device *ofdev)
        if (err != 0)
                goto err_detach_tah;
 
-       if (dev->tah_dev)
-               ndev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
+       if (dev->tah_dev) {
+               ndev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG;
+               ndev->features |= ndev->hw_features | NETIF_F_RXCSUM;
+       }
        ndev->watchdog_timeo = 5 * HZ;
        if (emac_phy_supports_gige(dev->phy_mode)) {
                ndev->netdev_ops = &emac_gige_netdev_ops;