[RFC 07/11] net: phy: reset invalid phy reads of 0 back to 0xffffffff

From: Jeremy Linton
Date: Fri May 22 2020 - 17:31:49 EST


MMD's in the device list sometimes return 0 for their id.
When that happens lets reset the id back to 0xfffffff so
that we don't get a stub device created for it.

This is a questionable commit, but i'm tossing it out
there along with the comment that reading the spec
seems to indicate that maybe there are further registers
that could be probed in an attempt to resolve some futher
"bad" phys. It sort of comes down to do we want unused phy
devices floating around (potentially unmatched in dt) or
do we want to cut them off early and let DT create them
directly.

For the ACPI case, we don't really have a good way to match
them, and since it hasn't been working I think its perfectly
reasonable at this point to expect phy's to implement enough
of the standard that we can detect them and attach a phy
specific driver.

Signed-off-by: Jeremy Linton <jeremy.linton@xxxxxxx>
---
drivers/net/phy/phy_device.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index b2cd22d6315c..acdada865864 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -780,6 +780,10 @@ static int get_phy_c45_ids(struct mii_bus *bus, int addr, u32 *phy_id,
return ret;
if (valid_phy_id(c45_ids->device_ids[i]))
valid_id = true;
+ else
+ c45_ids->device_ids[i] = 0xffffffff;
+
+ /* consider probing PKGID per 45.2.12.2.1? */
}

if (!valid_id && c22_present)
--
2.26.2