aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.osdl.org>2006-11-16 14:45:23 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2006-11-16 14:45:23 -0500
commit626db29f31ce253726411182ff6c15e31efe2e9a (patch)
tree5a4f1f01eafa3eae7c79c4c066f09dedb0975ec7 /drivers
parentb342baa737164e86cc67d5f16a305d04895ef338 (diff)
parentc7835a77c86422d276b0d1a4c70924d933014c13 (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: [TG3]: Disable TSO on 5906 if CLKREQ is enabled. [TCP]: Fix up sysctl_tcp_mem initialization. [NETFILTER]: ip6_tables: use correct nexthdr value in ipv6_find_hdr() [NETFILTER]: ip6_tables: fixed conflicted optname for getsockopt [NETFILTER]: Use pskb_trim in {ip,ip6,nfnetlink}_queue [NETFILTER]: nfnetlink_log: fix byteorder of NFULA_SEQ_GLOBAL [TG3]: Increase 5906 firmware poll time.
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/tg3.c25
1 files changed, 19 insertions, 6 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 06e4f77b0988..1dbdd6bb587b 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -68,8 +68,8 @@
68 68
69#define DRV_MODULE_NAME "tg3" 69#define DRV_MODULE_NAME "tg3"
70#define PFX DRV_MODULE_NAME ": " 70#define PFX DRV_MODULE_NAME ": "
71#define DRV_MODULE_VERSION "3.68" 71#define DRV_MODULE_VERSION "3.69"
72#define DRV_MODULE_RELDATE "November 02, 2006" 72#define DRV_MODULE_RELDATE "November 15, 2006"
73 73
74#define TG3_DEF_MAC_MODE 0 74#define TG3_DEF_MAC_MODE 0
75#define TG3_DEF_RX_MODE 0 75#define TG3_DEF_RX_MODE 0
@@ -4728,10 +4728,11 @@ static int tg3_poll_fw(struct tg3 *tp)
4728 u32 val; 4728 u32 val;
4729 4729
4730 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { 4730 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) {
4731 for (i = 0; i < 400; i++) { 4731 /* Wait up to 20ms for init done. */
4732 for (i = 0; i < 200; i++) {
4732 if (tr32(VCPU_STATUS) & VCPU_STATUS_INIT_DONE) 4733 if (tr32(VCPU_STATUS) & VCPU_STATUS_INIT_DONE)
4733 return 0; 4734 return 0;
4734 udelay(10); 4735 udelay(100);
4735 } 4736 }
4736 return -ENODEV; 4737 return -ENODEV;
4737 } 4738 }
@@ -10365,7 +10366,7 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
10365 u32 pci_state_reg, grc_misc_cfg; 10366 u32 pci_state_reg, grc_misc_cfg;
10366 u32 val; 10367 u32 val;
10367 u16 pci_cmd; 10368 u16 pci_cmd;
10368 int err; 10369 int err, pcie_cap;
10369 10370
10370 /* Force memory write invalidate off. If we leave it on, 10371 /* Force memory write invalidate off. If we leave it on,
10371 * then on 5700_BX chips we have to enable a workaround. 10372 * then on 5700_BX chips we have to enable a workaround.
@@ -10540,8 +10541,19 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
10540 GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5906) 10541 GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5906)
10541 tp->tg3_flags2 |= TG3_FLG2_JUMBO_CAPABLE; 10542 tp->tg3_flags2 |= TG3_FLG2_JUMBO_CAPABLE;
10542 10543
10543 if (pci_find_capability(tp->pdev, PCI_CAP_ID_EXP) != 0) 10544 pcie_cap = pci_find_capability(tp->pdev, PCI_CAP_ID_EXP);
10545 if (pcie_cap != 0) {
10544 tp->tg3_flags2 |= TG3_FLG2_PCI_EXPRESS; 10546 tp->tg3_flags2 |= TG3_FLG2_PCI_EXPRESS;
10547 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) {
10548 u16 lnkctl;
10549
10550 pci_read_config_word(tp->pdev,
10551 pcie_cap + PCI_EXP_LNKCTL,
10552 &lnkctl);
10553 if (lnkctl & PCI_EXP_LNKCTL_CLKREQ_EN)
10554 tp->tg3_flags2 &= ~TG3_FLG2_HW_TSO_2;
10555 }
10556 }
10545 10557
10546 /* If we have an AMD 762 or VIA K8T800 chipset, write 10558 /* If we have an AMD 762 or VIA K8T800 chipset, write
10547 * reordering to the mailbox registers done by the host 10559 * reordering to the mailbox registers done by the host
@@ -11808,6 +11820,7 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
11808 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || 11820 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
11809 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701 || 11821 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701 ||
11810 tp->pci_chip_rev_id == CHIPREV_ID_5705_A0 || 11822 tp->pci_chip_rev_id == CHIPREV_ID_5705_A0 ||
11823 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906 ||
11811 (tp->tg3_flags & TG3_FLAG_ENABLE_ASF) != 0) { 11824 (tp->tg3_flags & TG3_FLAG_ENABLE_ASF) != 0) {
11812 tp->tg3_flags2 &= ~TG3_FLG2_TSO_CAPABLE; 11825 tp->tg3_flags2 &= ~TG3_FLG2_TSO_CAPABLE;
11813 } else { 11826 } else {