aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/tg3.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index ef849b1eb110..25e57d8ddb51 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -9354,7 +9354,8 @@ static int tg3_test_loopback(struct tg3 *tp)
9354 if (err) 9354 if (err)
9355 return TG3_LOOPBACK_FAILED; 9355 return TG3_LOOPBACK_FAILED;
9356 9356
9357 if (tp->tg3_flags & TG3_FLAG_CPMU_PRESENT) { 9357 if (tp->pci_chip_rev_id == CHIPREV_ID_5784_A0 ||
9358 tp->pci_chip_rev_id == CHIPREV_ID_5761_A0) {
9358 int i; 9359 int i;
9359 u32 status; 9360 u32 status;
9360 9361
@@ -9371,17 +9372,18 @@ static int tg3_test_loopback(struct tg3 *tp)
9371 if (status != CPMU_MUTEX_GNT_DRIVER) 9372 if (status != CPMU_MUTEX_GNT_DRIVER)
9372 return TG3_LOOPBACK_FAILED; 9373 return TG3_LOOPBACK_FAILED;
9373 9374
9374 cpmuctrl = tr32(TG3_CPMU_CTRL);
9375
9376 /* Turn off power management based on link speed. */ 9375 /* Turn off power management based on link speed. */
9376 cpmuctrl = tr32(TG3_CPMU_CTRL);
9377 tw32(TG3_CPMU_CTRL, 9377 tw32(TG3_CPMU_CTRL,
9378 cpmuctrl & ~CPMU_CTRL_LINK_SPEED_MODE); 9378 cpmuctrl & ~(CPMU_CTRL_LINK_SPEED_MODE |
9379 CPMU_CTRL_LINK_AWARE_MODE));
9379 } 9380 }
9380 9381
9381 if (tg3_run_loopback(tp, TG3_MAC_LOOPBACK)) 9382 if (tg3_run_loopback(tp, TG3_MAC_LOOPBACK))
9382 err |= TG3_MAC_LOOPBACK_FAILED; 9383 err |= TG3_MAC_LOOPBACK_FAILED;
9383 9384
9384 if (tp->tg3_flags & TG3_FLAG_CPMU_PRESENT) { 9385 if (tp->pci_chip_rev_id == CHIPREV_ID_5784_A0 ||
9386 tp->pci_chip_rev_id == CHIPREV_ID_5761_A0) {
9385 tw32(TG3_CPMU_CTRL, cpmuctrl); 9387 tw32(TG3_CPMU_CTRL, cpmuctrl);
9386 9388
9387 /* Release the mutex */ 9389 /* Release the mutex */