On Mon, Apr 05, 2021 at 09:27:44PM +0200, Andrew Lunn wrote: > > Now, instead of encoding this information of the bus' capabilities at both > > places, I'd propose just checking the mii_bus->capabilities field in the > > mdiobus_c45_*() functions. IMHO this would be a little cleaner, than having > > two > > places where this information is stored. What do you think about that? > > You will need to review all the MDIO bus drivers to make sure they > correctly set the capabilities. There is something like 55 using > of_mdiobus_register() and 45 using mdiobus_register(). So you have 100 > drivers to review. Yes, but I think it would be enough to look at the drivers handling the MII_ADDR_C45 flag, because those are either - actually capable to do C45 bus transfers or - do properly return -EOPNOTSUPP.
I counted 27 drivers handling the MII_ADDR_C45 flag. Setting the capabilities for those should be pretty easy. The remaining ones, which should be about 73 then, could be left untouched, because the default capability MDIOBUS_NO_CAP would indicate they can C22 only. Since they don't handle the MII_ADDR_C45 flag at all, this should be the correct assumption. > > Andrew >