linux/drivers/net/pcs
Vladimir Oltean 36641b045c net: pcs: xpcs: also ignore phy id if it's all ones
xpcs_get_id() searches multiple MMDs for a known PHY ID, starting with
MDIO_MMD_PCS (3). However not all integrators might have implemented
that MMD on their MDIO bus. For example, the NXP SJA1105 and SJA1110
switches only implement vendor-specific MMD 1 and 2.

When there is nothing on an MDIO bus at a certain address, traditionally
the bus returns 0xffff, which means that the bus remained in its default
pull-up state for the duration of the MDIO transaction. The 0xffff value
is widely used in drivers/net/phy/phy_device.c (see get_phy_c22_id for
example) to denote a missing device.

So it makes sense for the xpcs to ignore this value as well, and
continue its search, eventually finding the proper PHY ID in the
vendor-specific MMDs.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-06-11 13:43:55 -07:00
..
Kconfig net: pcs-xpcs: depend on MDIO_BUS instead of selecting it 2020-10-16 16:54:11 -07:00
Makefile
pcs-lynx.c net: pcs: add pcs-lynx 1000BASE-X support 2021-02-06 14:35:21 -08:00
pcs-xpcs.c net: pcs: xpcs: also ignore phy id if it's all ones 2021-06-11 13:43:55 -07:00
pcs-xpcs.h net: pcs: xpcs: move register bit descriptions to a header file 2021-06-11 13:43:55 -07:00