diff options
| -rw-r--r-- | drivers/net/tg3.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index e5c1bc919b4d..f2b0839f9810 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
| @@ -9183,7 +9183,7 @@ static int tg3_test_interrupt(struct tg3 *tp) | |||
| 9183 | * Turn off MSI one shot mode. Otherwise this test has no | 9183 | * Turn off MSI one shot mode. Otherwise this test has no |
| 9184 | * observable way to know whether the interrupt was delivered. | 9184 | * observable way to know whether the interrupt was delivered. |
| 9185 | */ | 9185 | */ |
| 9186 | if (tg3_flag(tp, 57765_PLUS) && tg3_flag(tp, USING_MSI)) { | 9186 | if (tg3_flag(tp, 57765_PLUS)) { |
| 9187 | val = tr32(MSGINT_MODE) | MSGINT_MODE_ONE_SHOT_DISABLE; | 9187 | val = tr32(MSGINT_MODE) | MSGINT_MODE_ONE_SHOT_DISABLE; |
| 9188 | tw32(MSGINT_MODE, val); | 9188 | tw32(MSGINT_MODE, val); |
| 9189 | } | 9189 | } |
| @@ -9211,6 +9211,10 @@ static int tg3_test_interrupt(struct tg3 *tp) | |||
| 9211 | break; | 9211 | break; |
| 9212 | } | 9212 | } |
| 9213 | 9213 | ||
| 9214 | if (tg3_flag(tp, 57765_PLUS) && | ||
| 9215 | tnapi->hw_status->status_tag != tnapi->last_tag) | ||
| 9216 | tw32_mailbox_f(tnapi->int_mbox, tnapi->last_tag << 24); | ||
| 9217 | |||
| 9214 | msleep(10); | 9218 | msleep(10); |
| 9215 | } | 9219 | } |
| 9216 | 9220 | ||
| @@ -9225,7 +9229,7 @@ static int tg3_test_interrupt(struct tg3 *tp) | |||
| 9225 | 9229 | ||
| 9226 | if (intr_ok) { | 9230 | if (intr_ok) { |
| 9227 | /* Reenable MSI one shot mode. */ | 9231 | /* Reenable MSI one shot mode. */ |
| 9228 | if (tg3_flag(tp, 57765_PLUS) && tg3_flag(tp, USING_MSI)) { | 9232 | if (tg3_flag(tp, 57765_PLUS)) { |
| 9229 | val = tr32(MSGINT_MODE) & ~MSGINT_MODE_ONE_SHOT_DISABLE; | 9233 | val = tr32(MSGINT_MODE) & ~MSGINT_MODE_ONE_SHOT_DISABLE; |
| 9230 | tw32(MSGINT_MODE, val); | 9234 | tw32(MSGINT_MODE, val); |
| 9231 | } | 9235 | } |
