diff options
author | Michael Chan <mchan@broadcom.com> | 2005-08-09 23:17:41 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2005-08-29 18:50:49 -0400 |
commit | 087fe256f0aef8d16b19a30c6fb10b899bf1a701 (patch) | |
tree | 64e88bc4cb0984f225ef7830aef566f5ba0d203e | |
parent | 15f5a585c6b8dac31ed0a55693aacf51934f0f5d (diff) |
[TG3]: Fix bug in setting a tg3_flag
Found a bug while reviewing the patches the second time.
The TG3_FLAG_TXD_MBOX_HWBUG flag is set after the register access
methods have been determined. This patch fixes it by moving it up before
the various access methods are assigned.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/tg3.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 8bc28b14c70f..af8263a1580e 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -9408,6 +9408,12 @@ static int __devinit tg3_get_invariants(struct tg3 *tp) | |||
9408 | } | 9408 | } |
9409 | } | 9409 | } |
9410 | 9410 | ||
9411 | /* 5700 BX chips need to have their TX producer index mailboxes | ||
9412 | * written twice to workaround a bug. | ||
9413 | */ | ||
9414 | if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5700_BX) | ||
9415 | tp->tg3_flags |= TG3_FLAG_TXD_MBOX_HWBUG; | ||
9416 | |||
9411 | /* Back to back register writes can cause problems on this chip, | 9417 | /* Back to back register writes can cause problems on this chip, |
9412 | * the workaround is to read back all reg writes except those to | 9418 | * the workaround is to read back all reg writes except those to |
9413 | * mailbox regs. See tg3_write_indirect_reg32(). | 9419 | * mailbox regs. See tg3_write_indirect_reg32(). |
@@ -9682,14 +9688,6 @@ static int __devinit tg3_get_invariants(struct tg3 *tp) | |||
9682 | else | 9688 | else |
9683 | tp->tg3_flags &= ~TG3_FLAG_POLL_SERDES; | 9689 | tp->tg3_flags &= ~TG3_FLAG_POLL_SERDES; |
9684 | 9690 | ||
9685 | /* 5700 BX chips need to have their TX producer index mailboxes | ||
9686 | * written twice to workaround a bug. | ||
9687 | */ | ||
9688 | if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5700_BX) | ||
9689 | tp->tg3_flags |= TG3_FLAG_TXD_MBOX_HWBUG; | ||
9690 | else | ||
9691 | tp->tg3_flags &= ~TG3_FLAG_TXD_MBOX_HWBUG; | ||
9692 | |||
9693 | /* It seems all chips can get confused if TX buffers | 9691 | /* It seems all chips can get confused if TX buffers |
9694 | * straddle the 4GB address boundary in some cases. | 9692 | * straddle the 4GB address boundary in some cases. |
9695 | */ | 9693 | */ |