On Mon, Jun 22, 2020 at 06:52:00PM +0530, Calvin Johnson wrote: > On Wed, Jun 17, 2020 at 07:57:03PM +0100, Russell King - ARM Linux admin > wrote: > > On Wed, Jun 17, 2020 at 08:51:20PM +0200, Andrew Lunn wrote: > > > > > + /* bus capabilities, used for probing */ > > > > > + enum { > > > > > + MDIOBUS_C22 = 0, > > > > > + MDIOBUS_C45, > > > > > + MDIOBUS_C22_C45, > > > > > + } probe_capabilities; > > > > > > > > I think it would be better to reserve "0" to mean that no capabilities > > > > have been declared. We hae the situation where we have mii_bus that > > > > exist which do support C45, but as they stand, probe_capabilities will > > > > be zero, and with your definitions above, that means MDIOBUS_C22. > > > > > > > > It seems this could lock in some potential issues later down the line > > > > if we want to use this elsewhere. > > > > > > Hi Russell > > > > > > Actually, this patch already causes issues, i think. > > > > > > drivers/net/ethernet/marvell/mvmdio.c contains two MDIO bus master > > > drivers. "marvell,orion-mdio" is C22 only. "marvell,xmdio" is C45 > > > only. Because the capabilites is not initialized, it will default to > > > 0, aka MDIOBUS_C22, for the C45 only bus master, and i expect bad > > > things will happen. > > > > > > We need the value of 0 to cause existing behaviour. Or all MDIO bus > > > drivers need reviewing, and the correct capabilities set. > > > > Yes, that's basically what I was trying to say, thanks for putting it > > more clearly. > > Prior to this patch, below code which is for C22 was executed in this path. > phydev = get_phy_device(bus, addr, false); > Doesn't this mean that MDIOBUS_C22 = 0, doesn't break anything?
Please re-read Andrew's email that you quoted above, and consider this point: If bus->probe_capabilities == MDIOBUS_C22 for the Marvell XMDIO device, as it _will_ be the case, because bus->probe_capabilities has not been set, is this a sane situation? Are you willing to do a full audit of all MDIO drivers and set their bus->probe_capabilities correctly in every case in order to use MDIOBUS_C22 = 0 ? -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!