aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-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 */