aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/qlge
diff options
context:
space:
mode:
authorMichał Mirosław <mirq-linux@rere.qmqm.pl>2011-04-18 09:31:21 -0400
committerDavid S. Miller <davem@davemloft.net>2011-04-19 02:04:00 -0400
commit88230fd586b4ccc5ffe6d6c2df8cdc495e89ad83 (patch)
tree22dfe5a2c0f117ad464971b78db52310034c8e82 /drivers/net/qlge
parenta0d2730c9571aeba793cb5d3009094ee1d8fda35 (diff)
net: qlge: convert to hw_features
Another simple conversion. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/qlge')
-rw-r--r--drivers/net/qlge/qlge_ethtool.c34
-rw-r--r--drivers/net/qlge/qlge_main.c21
2 files changed, 8 insertions, 47 deletions
diff --git a/drivers/net/qlge/qlge_ethtool.c b/drivers/net/qlge/qlge_ethtool.c
index 687754da2a9f..78dc40c18c60 100644
--- a/drivers/net/qlge/qlge_ethtool.c
+++ b/drivers/net/qlge/qlge_ethtool.c
@@ -655,32 +655,6 @@ static int ql_set_pauseparam(struct net_device *netdev,
655 return status; 655 return status;
656} 656}
657 657
658static u32 ql_get_rx_csum(struct net_device *netdev)
659{
660 struct ql_adapter *qdev = netdev_priv(netdev);
661 return qdev->rx_csum;
662}
663
664static int ql_set_rx_csum(struct net_device *netdev, uint32_t data)
665{
666 struct ql_adapter *qdev = netdev_priv(netdev);
667 qdev->rx_csum = data;
668 return 0;
669}
670
671static int ql_set_tso(struct net_device *ndev, uint32_t data)
672{
673
674 if (data) {
675 ndev->features |= NETIF_F_TSO;
676 ndev->features |= NETIF_F_TSO6;
677 } else {
678 ndev->features &= ~NETIF_F_TSO;
679 ndev->features &= ~NETIF_F_TSO6;
680 }
681 return 0;
682}
683
684static u32 ql_get_msglevel(struct net_device *ndev) 658static u32 ql_get_msglevel(struct net_device *ndev)
685{ 659{
686 struct ql_adapter *qdev = netdev_priv(ndev); 660 struct ql_adapter *qdev = netdev_priv(ndev);
@@ -707,14 +681,6 @@ const struct ethtool_ops qlge_ethtool_ops = {
707 .self_test = ql_self_test, 681 .self_test = ql_self_test,
708 .get_pauseparam = ql_get_pauseparam, 682 .get_pauseparam = ql_get_pauseparam,
709 .set_pauseparam = ql_set_pauseparam, 683 .set_pauseparam = ql_set_pauseparam,
710 .get_rx_csum = ql_get_rx_csum,
711 .set_rx_csum = ql_set_rx_csum,
712 .get_tx_csum = ethtool_op_get_tx_csum,
713 .set_tx_csum = ethtool_op_set_tx_csum,
714 .get_sg = ethtool_op_get_sg,
715 .set_sg = ethtool_op_set_sg,
716 .get_tso = ethtool_op_get_tso,
717 .set_tso = ql_set_tso,
718 .get_coalesce = ql_get_coalesce, 684 .get_coalesce = ql_get_coalesce,
719 .set_coalesce = ql_set_coalesce, 685 .set_coalesce = ql_set_coalesce,
720 .get_sset_count = ql_get_sset_count, 686 .get_sset_count = ql_get_sset_count,
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index f61e717adac4..6c9d124cfc76 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -1571,7 +1571,7 @@ static void ql_process_mac_rx_page(struct ql_adapter *qdev,
1571 skb->protocol = eth_type_trans(skb, ndev); 1571 skb->protocol = eth_type_trans(skb, ndev);
1572 skb_checksum_none_assert(skb); 1572 skb_checksum_none_assert(skb);
1573 1573
1574 if (qdev->rx_csum && 1574 if ((ndev->features & NETIF_F_RXCSUM) &&
1575 !(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) { 1575 !(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) {
1576 /* TCP frame. */ 1576 /* TCP frame. */
1577 if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_T) { 1577 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,
1684 /* If rx checksum is on, and there are no 1684 /* If rx checksum is on, and there are no
1685 * csum or frame errors. 1685 * csum or frame errors.
1686 */ 1686 */
1687 if (qdev->rx_csum && 1687 if ((ndev->features & NETIF_F_RXCSUM) &&
1688 !(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) { 1688 !(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) {
1689 /* TCP frame. */ 1689 /* TCP frame. */
1690 if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_T) { 1690 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,
2004 /* If rx checksum is on, and there are no 2004 /* If rx checksum is on, and there are no
2005 * csum or frame errors. 2005 * csum or frame errors.
2006 */ 2006 */
2007 if (qdev->rx_csum && 2007 if ((ndev->features & NETIF_F_RXCSUM) &&
2008 !(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) { 2008 !(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) {
2009 /* TCP frame. */ 2009 /* TCP frame. */
2010 if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_T) { 2010 if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_T) {
@@ -4621,7 +4621,6 @@ static int __devinit ql_init_device(struct pci_dev *pdev,
4621 /* 4621 /*
4622 * Set up the operating parameters. 4622 * Set up the operating parameters.
4623 */ 4623 */
4624 qdev->rx_csum = 1;
4625 qdev->workqueue = create_singlethread_workqueue(ndev->name); 4624 qdev->workqueue = create_singlethread_workqueue(ndev->name);
4626 INIT_DELAYED_WORK(&qdev->asic_reset_work, ql_asic_reset_work); 4625 INIT_DELAYED_WORK(&qdev->asic_reset_work, ql_asic_reset_work);
4627 INIT_DELAYED_WORK(&qdev->mpi_reset_work, ql_mpi_reset_work); 4626 INIT_DELAYED_WORK(&qdev->mpi_reset_work, ql_mpi_reset_work);
@@ -4695,15 +4694,11 @@ static int __devinit qlge_probe(struct pci_dev *pdev,
4695 4694
4696 qdev = netdev_priv(ndev); 4695 qdev = netdev_priv(ndev);
4697 SET_NETDEV_DEV(ndev, &pdev->dev); 4696 SET_NETDEV_DEV(ndev, &pdev->dev);
4698 ndev->features = (0 4697 ndev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM |
4699 | NETIF_F_IP_CSUM 4698 NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN |
4700 | NETIF_F_SG 4699 NETIF_F_HW_VLAN_TX | NETIF_F_RXCSUM;
4701 | NETIF_F_TSO 4700 ndev->features = ndev->hw_features |
4702 | NETIF_F_TSO6 4701 NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER;
4703 | NETIF_F_TSO_ECN
4704 | NETIF_F_HW_VLAN_TX
4705 | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER);
4706 ndev->features |= NETIF_F_GRO;
4707 4702
4708 if (test_bit(QL_DMA64, &qdev->flags)) 4703 if (test_bit(QL_DMA64, &qdev->flags))
4709 ndev->features |= NETIF_F_HIGHDMA; 4704 ndev->features |= NETIF_F_HIGHDMA;