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

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
...@@ -79,10 +79,14 @@ struct efx_loopback_state { ...@@ -79,10 +79,14 @@ struct efx_loopback_state {
static int efx_test_mdio(struct efx_nic *efx, struct efx_self_tests *tests) static int efx_test_mdio(struct efx_nic *efx, struct efx_self_tests *tests)
{ {
int rc = 0; int rc = 0;
int devad = __ffs(efx->mdio.mmds); int devad;
u16 physid1, physid2; 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; return 0;
mutex_lock(&efx->mac_lock); mutex_lock(&efx->mac_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment