net: qlge: convert to hw_features
authorMichał Mirosław <mirq-linux@rere.qmqm.pl>
Mon, 18 Apr 2011 13:31:21 +0000 (13:31 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 19 Apr 2011 06:04:00 +0000 (23:04 -0700)
Another simple conversion.

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

index 687754d..78dc40c 100644 (file)
@@ -655,32 +655,6 @@ static int ql_set_pauseparam(struct net_device *netdev,
        return status;
 }
 
-static u32 ql_get_rx_csum(struct net_device *netdev)
-{
-       struct ql_adapter *qdev = netdev_priv(netdev);
-       return qdev->rx_csum;
-}
-
-static int ql_set_rx_csum(struct net_device *netdev, uint32_t data)
-{
-       struct ql_adapter *qdev = netdev_priv(netdev);
-       qdev->rx_csum = data;
-       return 0;
-}
-
-static int ql_set_tso(struct net_device *ndev, uint32_t data)
-{
-
-       if (data) {
-               ndev->features |= NETIF_F_TSO;
-               ndev->features |= NETIF_F_TSO6;
-       } else {
-               ndev->features &= ~NETIF_F_TSO;
-               ndev->features &= ~NETIF_F_TSO6;
-       }
-       return 0;
-}
-
 static u32 ql_get_msglevel(struct net_device *ndev)
 {
        struct ql_adapter *qdev = netdev_priv(ndev);
@@ -707,14 +681,6 @@ const struct ethtool_ops qlge_ethtool_ops = {
        .self_test               = ql_self_test,
        .get_pauseparam          = ql_get_pauseparam,
        .set_pauseparam          = ql_set_pauseparam,
-       .get_rx_csum = ql_get_rx_csum,
-       .set_rx_csum = ql_set_rx_csum,
-       .get_tx_csum = ethtool_op_get_tx_csum,
-       .set_tx_csum = ethtool_op_set_tx_csum,
-       .get_sg = ethtool_op_get_sg,
-       .set_sg = ethtool_op_set_sg,
-       .get_tso = ethtool_op_get_tso,
-       .set_tso = ql_set_tso,
        .get_coalesce = ql_get_coalesce,
        .set_coalesce = ql_set_coalesce,
        .get_sset_count = ql_get_sset_count,
index f61e717..6c9d124 100644 (file)
@@ -1571,7 +1571,7 @@ static void ql_process_mac_rx_page(struct ql_adapter *qdev,
        skb->protocol = eth_type_trans(skb, ndev);
        skb_checksum_none_assert(skb);
 
-       if (qdev->rx_csum &&
+       if ((ndev->features & NETIF_F_RXCSUM) &&
                !(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) {
                /* TCP frame. */
                if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_T) {
@@ -1684,7 +1684,7 @@ static void ql_process_mac_rx_skb(struct ql_adapter *qdev,
        /* If rx checksum is on, and there are no
         * csum or frame errors.
         */
-       if (qdev->rx_csum &&
+       if ((ndev->features & NETIF_F_RXCSUM) &&
                !(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) {
                /* TCP frame. */
                if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_T) {
@@ -2004,7 +2004,7 @@ static void ql_process_mac_split_rx_intr(struct ql_adapter *qdev,
        /* If rx checksum is on, and there are no
         * csum or frame errors.
         */
-       if (qdev->rx_csum &&
+       if ((ndev->features & NETIF_F_RXCSUM) &&
                !(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) {
                /* TCP frame. */
                if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_T) {
@@ -4621,7 +4621,6 @@ static int __devinit ql_init_device(struct pci_dev *pdev,
        /*
         * Set up the operating parameters.
         */
-       qdev->rx_csum = 1;
        qdev->workqueue = create_singlethread_workqueue(ndev->name);
        INIT_DELAYED_WORK(&qdev->asic_reset_work, ql_asic_reset_work);
        INIT_DELAYED_WORK(&qdev->mpi_reset_work, ql_mpi_reset_work);
@@ -4695,15 +4694,11 @@ static int __devinit qlge_probe(struct pci_dev *pdev,
 
        qdev = netdev_priv(ndev);
        SET_NETDEV_DEV(ndev, &pdev->dev);
-       ndev->features = (0
-                         | NETIF_F_IP_CSUM
-                         | NETIF_F_SG
-                         | NETIF_F_TSO
-                         | NETIF_F_TSO6
-                         | NETIF_F_TSO_ECN
-                         | NETIF_F_HW_VLAN_TX
-                         | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER);
-       ndev->features |= NETIF_F_GRO;
+       ndev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM |
+               NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN |
+               NETIF_F_HW_VLAN_TX | NETIF_F_RXCSUM;
+       ndev->features = ndev->hw_features |
+               NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER;
 
        if (test_bit(QL_DMA64, &qdev->flags))
                ndev->features |= NETIF_F_HIGHDMA;