diff options
author | Linus Torvalds <torvalds@woody.osdl.org> | 2006-11-16 14:45:23 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-11-16 14:45:23 -0500 |
commit | 626db29f31ce253726411182ff6c15e31efe2e9a (patch) | |
tree | 5a4f1f01eafa3eae7c79c4c066f09dedb0975ec7 /drivers | |
parent | b342baa737164e86cc67d5f16a305d04895ef338 (diff) | |
parent | c7835a77c86422d276b0d1a4c70924d933014c13 (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.c | 25 |
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 { |