Subject: Re: [CFT 0/8] rework phylink interface for split MAC/PCS support

From: Russell King - ARM Linux admin <[email-masked]>
Date: Sun, 21 Jun 2020 21:02:31 +0100

On Sun, Jun 21, 2020 at 10:37:43PM +0300, Vladimir Oltean wrote:
> Hi Russell,
> 
> On Sun, 21 Jun 2020 at 17:34, Russell King - ARM Linux admin
> <[email-masked]> wrote:
> >
> > All,
> >
> > This is now almost four months old, but I see that I didn't copy the
> > message to everyone who should've been, especially for the five
> > remaining drivers.
> >
> > I had asked for input from maintainers to help me convert their
> > phylink-using drivers to the new style where mac_link_up() performs
> > the speed, duplex and pause setup rather than mac_config(). So far,
> > I have had very little assistance with this, and it is now standing
> > in the way of further changes to phylink, particularly with proper
> > PCS support. You are effectively blocking this work; I can't break
> > your code as that will cause a kernel regression.
> >
> > This is one of the reasons why there were not many phylink patches
> > merged for the last merge window.
> >
> > The following drivers in current net-next remain unconverted:
> >
> > drivers/net/ethernet/mediatek/mtk_eth_soc.c
> > drivers/net/dsa/ocelot/felix.c
> > drivers/net/dsa/qca/ar9331.c
> > drivers/net/dsa/bcm_sf2.c
> > drivers/net/dsa/b53/b53_common.c
> >
> > These can be easily identified by grepping for conditionals where the
> > expression matches the "MLO_PAUSE_.X" regexp.
> >
> > I have an untested patch that I will be sending out today for
> > mtk_eth_soc.c, but the four DSA ones definitely require their authors
> > or maintainers to either make the changes, or assist with that since
> > their code is not straight forward.
> >
> > Essentially, if you are listed in this email's To: header, then you
> > are listed as a maintainer for one of the affected drivers, and I am
> > requesting assistance from you for this task please.
> >
> > Thanks.
> >
> > Russell.
> >
> 
> If forcing MAC speed is to be moved in mac_link_up(), and if (as you
> requested in the mdio-lynx-pcs thread) configuring the PCS is to be
> moved in pcs_link_up() and pcs_config() respectively, then what
> remains to be done in mac_config()?

Hopefully very little, but I suspect there will still be a need for
some kind of interface to configure the MAC interface type at the MAC.

Note that I have said many many many times that using state->{speed,
duplex,pause} in mac_config() when in in-band mode is unreliable, yet
still people insist on using them.  There _are_ and always _have been_
paths in phylink where these members will be passed with an unresolved
state, and they will corrupt the link settings when that happens.

I know that phylink was deficient in its handling of a split PCS, but
I have worked to correct that.  That job still is not complete, because
because I'm held up by these drivers that have not yet converted.  I've
already waited a kernel cycle, despite having the next series of
phylink patches ready and waiting since early February.

I'm getting to the point of wishing that phylink did not have users
except my own.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!