From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Andrew Lunn <andrew@lunn.ch>
Cc: "Marek Behún" <kabel@kernel.org>,
netdev@vger.kernel.org, "Jakub Kicinski" <kuba@kernel.org>,
"David Miller" <davem@davemloft.net>,
"Rob Herring" <robh+dt@kernel.org>,
devicetree@vger.kernel.org
Subject: Re: [PATCH net-next 4/8] net: phylink: update supported_interfaces with modes from fwnode
Date: Thu, 18 Nov 2021 17:08:10 +0000 [thread overview]
Message-ID: <YZaIeiOyhqyVNG8D@shell.armlinux.org.uk> (raw)
In-Reply-To: <YZaAXadMIduFZr08@lunn.ch>
On Thu, Nov 18, 2021 at 05:33:33PM +0100, Andrew Lunn wrote:
> > > + /* If supported is empty, just copy modes defined in fwnode. */
> > > + if (phy_interface_empty(supported))
> > > + return phy_interface_copy(supported, modes);
> >
> > Doesn't this mean we always end up with the supported_interfaces field
> > filled in, even for drivers that haven't yet been converted? It will
> > have the effect of locking the driver to the interface mode in "modes"
> > where only one interface mode is mentioned in DT.
> >
> > At the moment, I think the only drivers that would be affected would be
> > some DSA drivers, stmmac and macb as they haven't yet been converted.
>
> Hi Russell
>
> What do you think the best way forward is? Got those converted before
> merging this?
The situation is as follows:
- For macb, I have a bunch of patches ready to go against net-next (in
git log order):
net: macb: use phylink_generic_validate()
net: macb: clean up macb_validate()
net: macb: remove interface checks in macb_validate()
net: macb: populate supported_interfaces member
but I think Sean and myself need to finish discussing PCS capabilities
before I send those.
- For mv88e6xxx DSA, I have some patches - I need to check with Marek
whether he has any further changes for those as he's been looking over
them and checking with the Marvell specs before I can send them.
- For mt7530 DSA, I also have some patches, but no way to test them.
All of the above patches are in my net-queue branch:
http://git.armlinux.org.uk/cgit/linux-arm.git/log/?h=net-queue
- For stmmac, I pinged Jose Abreu about it. stmmac's validate function
does not check the interface mode at all if there is no XPCS attached.
Jose says that which interface modes are supported is up to the
integrator to decide, and it seems there is nothing in the current
driver to work out which interface modes can be supported.
If there is an XPCS attached, it defers interface mode checks to
xpcs_validate(), which uses the interface mode to walk an array to
find a list of linkmodes that the PCS supports.
So, I think it's going to take a bit of unpicking to work out what to
do here, and may depend on what we come up with with Sean for PCS.
That leaves quite a number of DSA drivers untouched.
So, I think we need to realise that even though we have all the users
in the kernel, making changes to phylink's API is always going to be
difficult, and we always need to maintain compatibility for old ways
of doing stuff - at least until every user can be converted. However,
that brings with it its own problem - there is then no motivation for
people to adapt to the new way. This can be seen as we have the
compatibility for calling mac_config() whenever the link comes up
16 months after the PCS stuff was introduced. One of the problem
drivers for this is mtk_eth_soc:
http://git.armlinux.org.uk/cgit/linux-arm.git/commit/?h=net-queue&id=278da006a936c0743c7fc261c23e7de992ac78e6
René van Dorst said in response to me posting that patch in July 2020:
> I know, you have pointed that out before. But I don't know how to fix
> mtk_gmac0_rgmii_adjust(). This function changes the PLL of the MAC.
> But without documentation I am not sure what all the bits are used
> for.
and my attempts to discuss a way forward didn't get a reply. So,
mtk_eth_soc has become an example of a problematical driver that makes
ongoing phylink changes difficult, and I fear stmmac may become another
example.
I'm quite certain that as we try to develop phylink, such as adding
extra facilities like specifying the interface modes, we're going to
end up running into these kinds of problems that we can't solve, and
we are going to have to keep compatibility for the old ways of doing
stuff going for years to come - which is just going to get more and
more painful.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
next prev parent reply other threads:[~2021-11-18 17:08 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-17 22:50 [PATCH net-next 0/8] Extend `phy-mode` to string array Marek Behún
2021-11-17 22:50 ` [PATCH net-next 1/8] dt-bindings: ethernet-controller: support multiple PHY connection types Marek Behún
2021-11-18 16:27 ` Andrew Lunn
2021-11-17 22:50 ` [PATCH net-next 2/8] net: Update documentation for *_get_phy_mode() functions Marek Behún
2021-11-18 16:28 ` Andrew Lunn
2021-11-17 22:50 ` [PATCH net-next 3/8] device property: add helper function for getting phy mode bitmap Marek Behún
2021-11-18 16:31 ` Andrew Lunn
2021-11-17 22:50 ` [PATCH net-next 4/8] net: phylink: update supported_interfaces with modes from fwnode Marek Behún
2021-11-18 9:05 ` Russell King (Oracle)
2021-11-18 16:33 ` Andrew Lunn
2021-11-18 17:08 ` Russell King (Oracle) [this message]
2021-11-18 17:33 ` Marek Behún
2021-11-18 17:39 ` Russell King (Oracle)
2021-11-18 20:38 ` Sean Anderson
2021-11-17 22:50 ` [PATCH net-next 5/8] net: phylink: pass supported PHY interface modes to phylib Marek Behún
2021-11-18 9:32 ` Russell King (Oracle)
2021-11-18 16:27 ` Andrew Lunn
2021-11-18 16:28 ` Russell King (Oracle)
2021-11-17 22:50 ` [PATCH net-next 6/8] net: phy: marvell10g: Use generic macro for supported interfaces Marek Behún
2021-11-18 9:33 ` Russell King (Oracle)
2021-11-18 16:27 ` Andrew Lunn
2021-11-17 22:50 ` [PATCH net-next 7/8] net: phy: marvell10g: Use tabs instead of spaces for indentation Marek Behún
2021-11-18 9:34 ` Russell King (Oracle)
2021-11-17 22:50 ` [PATCH net-next 8/8] net: phy: marvell10g: select host interface configuration Marek Behún
2021-11-18 9:41 ` Russell King (Oracle)
2021-11-18 13:46 ` Marek Behún
2021-11-18 14:25 ` Russell King (Oracle)
2021-11-18 12:03 ` Vladimir Oltean
2021-11-18 13:22 ` Russell King (Oracle)
2021-11-18 14:20 ` Vladimir Oltean
2021-11-18 14:47 ` Russell King (Oracle)
2021-11-18 15:09 ` Vladimir Oltean
2021-11-18 15:20 ` Marek Behún
2021-11-18 15:59 ` Russell King (Oracle)
2021-11-18 13:56 ` Marek Behún
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YZaIeiOyhqyVNG8D@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=kabel@kernel.org \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).