summaryrefslogtreecommitdiffstats
path: root/drivers/net/tg3.c
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2006-03-21 07:28:27 +0100
committerDavid S. Miller <davem@davemloft.net>2006-03-21 07:28:27 +0100
commit9c27dbdf64cba05d0cacc343118a7fd01d4b82f7 (patch)
treef579329eab7d30f6016d52ab50bfcb2a540dd750 /drivers/net/tg3.c
parent[TG3]: Add new hard_start_xmit (diff)
downloadlinux-9c27dbdf64cba05d0cacc343118a7fd01d4b82f7.tar.xz
linux-9c27dbdf64cba05d0cacc343118a7fd01d4b82f7.zip
[TG3]: Add ipv6 checksum support
Support ipv6 tx csum on 5787 by setting NETIF_F_HW_CSUM. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r--drivers/net/tg3.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index d4035de6440e..5182a3be7f21 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -7871,10 +7871,10 @@ static int tg3_set_tx_csum(struct net_device *dev, u32 data)
return 0;
}
- if (data)
- dev->features |= NETIF_F_IP_CSUM;
+ if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787)
+ ethtool_op_set_tx_hw_csum(dev, data);
else
- dev->features &= ~NETIF_F_IP_CSUM;
+ ethtool_op_set_tx_csum(dev, data);
return 0;
}
@@ -11236,7 +11236,11 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
* checksumming.
*/
if ((tp->tg3_flags & TG3_FLAG_BROKEN_CHECKSUMS) == 0) {
- dev->features |= NETIF_F_SG | NETIF_F_IP_CSUM;
+ if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787)
+ dev->features |= NETIF_F_HW_CSUM;
+ else
+ dev->features |= NETIF_F_IP_CSUM;
+ dev->features |= NETIF_F_SG;
tp->tg3_flags |= TG3_FLAG_RX_CHECKSUMS;
} else
tp->tg3_flags &= ~TG3_FLAG_RX_CHECKSUMS;