Re: [PATCH net-next] net: dsa: honor "max-speed" for implicit PHYs on user ports

Sverdlin, Alexander
2024-12-19T18:50:22Z

Hello Vladimir, Andrew,

thanks for the quick feedback!

On Thu, 2024-12-19 at 19:46 +0200, Vladimir Oltean wrote:
> On Thu, Dec 19, 2024 at 06:38:01PM +0100, A. Sverdlin wrote:
> > From: Alexander Sverdlin <alexander.sverdlin@siemens.com>
> >
> > If the PHYs on user ports are not specified explicitly, but a common
> > user_mii_bus is being registered and scanned there is no way to limit
> > Auto Negotiation options currently. If a gigabit switch is deployed in a
> > way that the ports cannot support gigabit rates (4-wire PCB/magnetics,
> > for instance), there is no way to limit ports' AN not to advertise gigabit
> > options. Some PHYs take considerably longer time to AutoNegotiate in such
> > cases.
> >
> > Provide a way to limit AN advertisement options by examining "max-speed"
> > property in the DT node of the corresponding user port and call
> > phy_set_max_speed() right before attaching the PHY to he port netdevice.
> >
> > Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
> > ---
>
> The user_mii_bus mechanism is redundant when we have device tree
> available (as opposed to probing on platform data), let's not make it
> even more redundant. Why don't you just declare the MDIO bus in the
> device tree, with the PHYs on it, and place max-speed there?

There are still switch drivers in tree, which only implement .phy_read/.phy_write
callbacks (which means, they rely on .user_mii_bus ?), even gigabit-capable,
such as vsc73xx, rtl8365mb, rtl8366rb... But I'm actually interested in an
out of tree driver for a new generation of lantiq_gsw hardware, under
Maxlinear branch, which is planned to be submitted upstream at some point.

The relevant question is then, is it acceptable API (.phy_read/.phy_write),
or any new gigabit-capable driver must use some form of mdiobus_register
to populate the MDIO bus explicitly itself?

--
Alexander Sverdlin
Siemens AG