aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2005-08-09 23:17:41 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2005-08-29 18:50:49 -0400
commit087fe256f0aef8d16b19a30c6fb10b899bf1a701 (patch)
tree64e88bc4cb0984f225ef7830aef566f5ba0d203e /drivers
parent15f5a585c6b8dac31ed0a55693aacf51934f0f5d (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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/tg3.c14
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 */