[PATCH net-next v2 06/10] net: phy: print an info if a broken C45 bus is found

Michael Walle
2023-06-23T10:30:25Z

If there is an PHY which gets confused by C45 transactions on the MDIO
bus, print an info together with the PHY identifier of the offending
one.

Signed-off-by: Michael Walle <mwalle@kernel.org>

---
I wasn't sure if this should be phydev_dbg() or phydev_info(). I mainly
see this as an info to a user why some PHYs might not be probed (or
c45-over-c22 is used later).
---
drivers/net/phy/mdio_bus.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index 00b25f6803bc..38529add6420 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -617,10 +617,10 @@ static int mdiobus_scan_bus_c45(struct mii_bus *bus)
*/
void mdiobus_scan_for_broken_c45_access(struct mii_bus *bus)
{
+ struct phy_device *phydev;
int i;

for (i = 0; i < PHY_MAX_ADDR; i++) {
- struct phy_device *phydev;
u32 oui;

phydev = mdiobus_get_phy(bus, i);
@@ -633,6 +633,11 @@ void mdiobus_scan_for_broken_c45_access(struct mii_bus *bus)
break;
}
}
+
+ if (bus->prevent_c45_access)
+ dev_info(&bus->dev,
+ "Detected broken PHY (ID %08lx). Disabling C45 bus transactions.\n",
+ (unsigned long)phydev->phy_id);
}

/**

--
2.39.2