diff options
author | Matt Carlson <mcarlson@broadcom.com> | 2011-01-25 10:58:50 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-01-25 22:38:17 -0500 |
commit | 0583d52114b19ea06d03dd2cf762a7737c265400 (patch) | |
tree | d290f5fa1a4fd201a6cb378fe26b76a16f73a52c /drivers/net/tg3.c | |
parent | bf933c802763b2beb1a1d4977f00af1a78c4fb70 (diff) |
tg3: Disable multivec mode for 1 MSIX vector
For single vector MSI-X allocations, we do not want to enable
multivector modes. This patch makes the necessary corrections.
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/tg3.c')
-rw-r--r-- | drivers/net/tg3.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index d4b29f424085..b2a16b4e3caf 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -8322,7 +8322,8 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) | |||
8322 | tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl); | 8322 | tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl); |
8323 | udelay(100); | 8323 | udelay(100); |
8324 | 8324 | ||
8325 | if (tp->tg3_flags2 & TG3_FLG2_USING_MSIX) { | 8325 | if ((tp->tg3_flags2 & TG3_FLG2_USING_MSIX) && |
8326 | tp->irq_cnt > 1) { | ||
8326 | val = tr32(MSGINT_MODE); | 8327 | val = tr32(MSGINT_MODE); |
8327 | val |= MSGINT_MODE_MULTIVEC_EN | MSGINT_MODE_ENABLE; | 8328 | val |= MSGINT_MODE_MULTIVEC_EN | MSGINT_MODE_ENABLE; |
8328 | tw32(MSGINT_MODE, val); | 8329 | tw32(MSGINT_MODE, val); |
@@ -9062,7 +9063,8 @@ static void tg3_ints_init(struct tg3 *tp) | |||
9062 | 9063 | ||
9063 | if (tp->tg3_flags2 & TG3_FLG2_USING_MSI_OR_MSIX) { | 9064 | if (tp->tg3_flags2 & TG3_FLG2_USING_MSI_OR_MSIX) { |
9064 | u32 msi_mode = tr32(MSGINT_MODE); | 9065 | u32 msi_mode = tr32(MSGINT_MODE); |
9065 | if (tp->tg3_flags2 & TG3_FLG2_USING_MSIX) | 9066 | if ((tp->tg3_flags2 & TG3_FLG2_USING_MSIX) && |
9067 | tp->irq_cnt > 1) | ||
9066 | msi_mode |= MSGINT_MODE_MULTIVEC_EN; | 9068 | msi_mode |= MSGINT_MODE_MULTIVEC_EN; |
9067 | tw32(MSGINT_MODE, msi_mode | MSGINT_MODE_ENABLE); | 9069 | tw32(MSGINT_MODE, msi_mode | MSGINT_MODE_ENABLE); |
9068 | } | 9070 | } |