aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/tg3.c
diff options
context:
space:
mode:
authorMatt Carlson <mcarlson@broadcom.com>2010-01-20 11:58:08 -0500
committerDavid S. Miller <davem@davemloft.net>2010-01-20 22:21:01 -0500
commitc2353a3214ff5813c4b719b3cdacbe939b1c63a0 (patch)
tree5f6f3b3cb5cb9e410baffd9fabd3e5c10c8a7843 /drivers/net/tg3.c
parent5fd68fbdaf75505a2400826c7f314a1f3121a5f7 (diff)
tg3: Fix tx mailbox initialization
If a device supports MSI-X interrupts, the driver assumes TSS will be available. This is not true for the 57765. This patch changes the code so that only the default tx mailbox is initialized if TSS is not available. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Reviewed-by: Benjamin Li <benli@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/tg3.c')
-rw-r--r--drivers/net/tg3.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 72d1e18a152..dffa51a4aaf 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -7440,10 +7440,13 @@ static void tg3_rings_reset(struct tg3 *tp)
7440 for (i = 1; i < TG3_IRQ_MAX_VECS; i++) { 7440 for (i = 1; i < TG3_IRQ_MAX_VECS; i++) {
7441 tp->napi[i].tx_prod = 0; 7441 tp->napi[i].tx_prod = 0;
7442 tp->napi[i].tx_cons = 0; 7442 tp->napi[i].tx_cons = 0;
7443 tw32_mailbox(tp->napi[i].prodmbox, 0); 7443 if (tp->tg3_flags3 & TG3_FLG3_ENABLE_TSS)
7444 tw32_mailbox(tp->napi[i].prodmbox, 0);
7444 tw32_rx_mbox(tp->napi[i].consmbox, 0); 7445 tw32_rx_mbox(tp->napi[i].consmbox, 0);
7445 tw32_mailbox_f(tp->napi[i].int_mbox, 1); 7446 tw32_mailbox_f(tp->napi[i].int_mbox, 1);
7446 } 7447 }
7448 if (!(tp->tg3_flags3 & TG3_FLG3_ENABLE_TSS))
7449 tw32_mailbox(tp->napi[0].prodmbox, 0);
7447 } else { 7450 } else {
7448 tp->napi[0].tx_prod = 0; 7451 tp->napi[0].tx_prod = 0;
7449 tp->napi[0].tx_cons = 0; 7452 tp->napi[0].tx_cons = 0;