Messages in this thread | | | Date | Thu, 24 Mar 2022 16:09:47 +0100 | From | Andrew Lunn <> | Subject | Re: [PATCH RFC net-next 2/5] net: phy: support indirect c45 access in get_phy_c45_ids() |
| |
On Thu, Mar 24, 2022 at 03:28:43PM +0100, Michael Walle wrote: > Am 2022-03-23 20:39, schrieb Andrew Lunn: > > > +static int mdiobus_probe_mmd_read(struct mii_bus *bus, int prtad, > > > int devad, > > > + u16 regnum) > > > +{ > > > + int ret; > > > + > > > + /* For backwards compatibility, treat MDIOBUS_NO_CAP as c45 > > > capable */ > > > + if (bus->probe_capabilities == MDIOBUS_NO_CAP || > > > + bus->probe_capabilities >= MDIOBUS_C45) > > > > Maybe we should do the work and mark up those that are C45 capable. At > > a quick count, see 16 of them. > > I guess you grepped for MII_ADDR_C45 and had a look who > actually handled it correctly. Correct?
Yes.
> Let's say we mark these as either MDIOBUS_C45 or MDIOBUS_C45_C22, > can we then drop MDIOBUS_NO_CAP and make MDIOBUS_C22 the default > value (i.e. value 0) or do we have to go through all the mdio drivers > and add bus->probe_capabilities = MDIOBUS_C22 ? Grepping for > {of_,}mdiobus_register lists quite a few of them.
The minimum is marking those that support C45 with MDIOBUS_C45 or MDIOBUS_C45_C22. We can then really trust it does C45. Those that don't set probe_capabilities we assume are C22 only. That should be enough for this problem.
FYI: Yesterday i started actually adding probe_capabilities values to drivers. I did everything in driver/net/mdio. I will work on the rest over the next few days and then post an RFC patchset.
Andrew
| |