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

Commit f3766c26 authored by Ben Hutchings's avatar Ben Hutchings Committed by David S. Miller
Browse files

sfc: Fix conditions for MDIO self-test



The MDIO self-test should not be run on boards without an MDIO PHY,
such as SFN5122F-R3 and later revisions.  It should also not try to
address a specific MMD in an MDIO clause 22 PHY.  Check the
mode_support field to decide which mode to use, if any.

Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 55029c1d
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -79,10 +79,14 @@ struct efx_loopback_state {
static int efx_test_mdio(struct efx_nic *efx, struct efx_self_tests *tests)
{
	int rc = 0;
	int devad = __ffs(efx->mdio.mmds);
	int devad;
	u16 physid1, physid2;

	if (efx->phy_type == PHY_TYPE_NONE)
	if (efx->mdio.mode_support & MDIO_SUPPORTS_C45)
		devad = __ffs(efx->mdio.mmds);
	else if (efx->mdio.mode_support & MDIO_SUPPORTS_C22)
		devad = MDIO_DEVAD_NONE;
	else
		return 0;

	mutex_lock(&efx->mac_lock);