Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e875093c authored by Matt Carlson's avatar Matt Carlson Committed by David S. Miller
Browse files

[TG3]: CPMU adjustments for loopback tests



This patch adds the LINK_SPEED mode to the list of CPMU modes that can
cause the loopback tests to fail.  These bugs are planned to be fixed in
future revisions of the chip, so the patch qualifies the fixes as such.

Signed-off-by: default avatarMatt Carlson <mcarlson@broadcom.com>
Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a5767dec
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -9354,7 +9354,8 @@ static int tg3_test_loopback(struct tg3 *tp)
	if (err)
		return TG3_LOOPBACK_FAILED;

	if (tp->tg3_flags & TG3_FLAG_CPMU_PRESENT) {
	if (tp->pci_chip_rev_id == CHIPREV_ID_5784_A0 ||
	    tp->pci_chip_rev_id == CHIPREV_ID_5761_A0) {
		int i;
		u32 status;

@@ -9371,17 +9372,18 @@ static int tg3_test_loopback(struct tg3 *tp)
		if (status != CPMU_MUTEX_GNT_DRIVER)
			return TG3_LOOPBACK_FAILED;

		cpmuctrl = tr32(TG3_CPMU_CTRL);

		/* Turn off power management based on link speed. */
		cpmuctrl = tr32(TG3_CPMU_CTRL);
		tw32(TG3_CPMU_CTRL,
		     cpmuctrl & ~CPMU_CTRL_LINK_SPEED_MODE);
		     cpmuctrl & ~(CPMU_CTRL_LINK_SPEED_MODE |
				  CPMU_CTRL_LINK_AWARE_MODE));
	}

	if (tg3_run_loopback(tp, TG3_MAC_LOOPBACK))
		err |= TG3_MAC_LOOPBACK_FAILED;

	if (tp->tg3_flags & TG3_FLAG_CPMU_PRESENT) {
	if (tp->pci_chip_rev_id == CHIPREV_ID_5784_A0 ||
	    tp->pci_chip_rev_id == CHIPREV_ID_5761_A0) {
		tw32(TG3_CPMU_CTRL, cpmuctrl);

		/* Release the mutex */