Message ID | 20200226102312.GX25745@shell.armlinux.org.uk (mailing list archive) |
---|---|
Headers | show |
Series | rework phylink interface for split MAC/PCS support | expand |
From: Russell King - ARM Linux admin <linux@armlinux.org.uk> Date: Wed, 26 Feb 2020 10:23:12 +0000 > The following series changes the phylink interface to allow us to > better support split MAC / MAC PCS setups. The fundamental change > required for this turns out to be quite simple. > > Today, mac_config() is used for everything to do with setting the > parameters for the MAC, and mac_link_up() is used to inform the > MAC driver that the link is now up (and so to allow packet flow.) > mac_config() also has had a few implementation issues, with folk > who believe that members such as "speed" and "duplex" are always > valid, where "link" gets used inappropriately, etc. > > With the proposed patches, all this changes subtly - but in a > backwards compatible way at this stage. > > We pass the the full resolved link state (speed, duplex, pause) to > mac_link_up(), and it is now guaranteed that these parameters to > this function will always be valid (no more SPEED_UNKNOWN or > DUPLEX_UNKNOWN here - unless phylink is fed with such things.) > > Drivers should convert over to using the state in mac_link_up() > rather than configuring the speed, duplex and pause in the > mac_config() method. The patch series includes a number of MAC > drivers which I've thought have been easy targets - I've left the > remainder as I think they need maintainer input. However, *all* > drivers will need conversion for future phylink development. > > v2: add ocelot/felix and qca/ar9331 DSA drivers to patch 2, add > received tested-by so far. In order to end the storm in a teacup, I've applied this series. :-) Thanks Russell.
On Thu, Feb 27, 2020 at 12:02:54PM -0800, David Miller wrote: > From: Russell King - ARM Linux admin <linux@armlinux.org.uk> > Date: Wed, 26 Feb 2020 10:23:12 +0000 > > > The following series changes the phylink interface to allow us to > > better support split MAC / MAC PCS setups. The fundamental change > > required for this turns out to be quite simple. > > > > Today, mac_config() is used for everything to do with setting the > > parameters for the MAC, and mac_link_up() is used to inform the > > MAC driver that the link is now up (and so to allow packet flow.) > > mac_config() also has had a few implementation issues, with folk > > who believe that members such as "speed" and "duplex" are always > > valid, where "link" gets used inappropriately, etc. > > > > With the proposed patches, all this changes subtly - but in a > > backwards compatible way at this stage. > > > > We pass the the full resolved link state (speed, duplex, pause) to > > mac_link_up(), and it is now guaranteed that these parameters to > > this function will always be valid (no more SPEED_UNKNOWN or > > DUPLEX_UNKNOWN here - unless phylink is fed with such things.) > > > > Drivers should convert over to using the state in mac_link_up() > > rather than configuring the speed, duplex and pause in the > > mac_config() method. The patch series includes a number of MAC > > drivers which I've thought have been easy targets - I've left the > > remainder as I think they need maintainer input. However, *all* > > drivers will need conversion for future phylink development. > > > > v2: add ocelot/felix and qca/ar9331 DSA drivers to patch 2, add > > received tested-by so far. > > In order to end the storm in a teacup, I've applied this series. > > :-) > > Thanks Russell. Thanks David, I was getting concerned that the teacup might break! :p