From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Vladimir Oltean <olteanv@gmail.com>
Cc: "Andrew Lunn" <andrew@lunn.ch>,
"Heiner Kallweit" <hkallweit1@gmail.com>,
"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
"Alvin __ipraga" <alsi@bang-olufsen.dk>,
"Claudiu Manoil" <claudiu.manoil@nxp.com>,
"David S. Miller" <davem@davemloft.net>,
"DENG Qingfang" <dqfext@gmail.com>,
"Eric Dumazet" <edumazet@google.com>,
"Florian Fainelli" <f.fainelli@gmail.com>,
"George McCollister" <george.mccollister@gmail.com>,
"Hauke Mehrtens" <hauke@hauke-m.de>,
"Jakub Kicinski" <kuba@kernel.org>,
"Kurt Kanzenbach" <kurt@linutronix.de>,
"Landen Chao" <Landen.Chao@mediatek.com>,
"Linus Walleij" <linus.walleij@linaro.org>,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org,
"Matthias Brugger" <matthias.bgg@gmail.com>,
netdev@vger.kernel.org, "Paolo Abeni" <pabeni@redhat.com>,
"Sean Wang" <sean.wang@mediatek.com>,
UNGLinuxDriver@microchip.com,
"Vivien Didelot" <vivien.didelot@gmail.com>,
"Woojung Huh" <woojung.huh@microchip.com>,
"Marek Behún" <kabel@kernel.org>
Subject: Re: [PATCH RFC net-next 5/5] net: dsa: always use phylink for CPU and DSA ports
Date: Thu, 7 Jul 2022 17:32:57 +0100 [thread overview]
Message-ID: <YscKuTXeXFX0tCap@shell.armlinux.org.uk> (raw)
In-Reply-To: <20220707154303.236xaeape7isracw@skbuf>
On Thu, Jul 07, 2022 at 06:43:03PM +0300, Vladimir Oltean wrote:
> On Thu, Jul 07, 2022 at 12:00:54PM +0100, Russell King (Oracle) wrote:
> > More importantly, we need your input on Ocelot, which you are listed as
> > a maintainer for, and Ocelot is the only DSA driver that does stuff
> > differently (due to the rate adapting PCS). It doesn't set
> > mac_capabilities, and therefore phylink_set_max_fixed_link() will not
> > work here.
> >
> > Has Ocelot ever made use of this DSA feature where, when nothing is
> > specified for a CPU or DSA port, we use an effective fixed-link setup
> > with an interface mode that gives the highest speed? Or does this not
> > apply to this DSA driver?
> >
> > Thanks.
>
> I'm fine with both the ocelot and sja1105 drivers.
>
> The ocelot driver has 3 users:
>
> - felix_vsc9959 (arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi) on NXP
> LS1028A, where the CPU ports have and have always had a fixed-link
> node in the SoC dtsi. LS1028A based boards should include the SoC
> dtsi. If other board DT writers don't do that or if they delete the
> fixed-link node from the CPU ports, that's not my problem and I don't
> really want to help them.
>
> - seville_vsc9953 (arch/powerpc/boot/dts/fsl/t1040si-post.dtsi) on NXP
> T1040. Same thing, embedded switch, not my fault if the fixed-link
> disappears from the SoC dtsi.
Great, so I'll mark ocelot is safe.
> - Colin Foster's SPI-controlled VSC7512 (still downstream). He has an
> Ethernet cable connecting the CPU port to a Beaglebone Black, so he
> has a phy-handle on the CPU port, so definitely not nothing. I believe
> his work hasn't made it to production in any case, so enforcing
> validation now shouldn't bother him too much if at all.
Ok, thanks.
> As for sja1105, there is DT validation that checks for the presence of
> all required properties in sja1105_parse_ports_node().
Looking at those, it requires all of:
- a phy mode to be specified (as determined by of_get_phy_mode())
- a phy-handle or of_phy_is_fixed_link() to return true
otherwise it errors out.
> There is some DT validation in felix_parse_ports_node() too, but it
> doesn't check that all specifiers that phylink might use are there.
Phylink (correction, fwnode_get_phy_node() which is not part of phylink
anymore) will look for phy-handle, phy, or phy-device. This is I don't
see that there's any incompatibility between what the driver is doing
and what phylink does.
If there's a fixed-link property, then sja1105_parse_ports_node() is
happy, and so will phylink. If there's a phy-handle, the same is true.
If there's a "phy" or "phy-device" then sja1105_parse_ports_node()
errors out. That's completely fine.
"phy" and "phy-device" are the backwards compatibility for DT - I
believe one of them is the ePAPR specified property that we in Linux
have decided to only fall back on if there's not our more modern
"phy-handle" property.
It seems We have a lot of users of "phy" in DT today, so we can't drop
that from generic code such as phylink, but I haven't found any users
of "phy-device".
> I'd really like to add some validation before I gain any involuntary
> users, but all open-coded constructs I can come up with are clumsy.
> What would you suggest, if I explicitly don't want to rely on
> context-specific phylink interpretation of empty OF nodes, and rather
> error out?
So I also don't see a problem - sja1105 rejects DTs that fail to
describe a port using at least one of a phy-handle, a fixed-link, or
a managed in-band link, and I don't think it needs to do further
validation, certainly not for the phy describing properties that
the kernel has chosen to deprecate for new implementations.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
WARNING: multiple messages have this Message-ID (diff)
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Vladimir Oltean <olteanv@gmail.com>
Cc: "Andrew Lunn" <andrew@lunn.ch>,
"Heiner Kallweit" <hkallweit1@gmail.com>,
"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
"Alvin __ipraga" <alsi@bang-olufsen.dk>,
"Claudiu Manoil" <claudiu.manoil@nxp.com>,
"David S. Miller" <davem@davemloft.net>,
"DENG Qingfang" <dqfext@gmail.com>,
"Eric Dumazet" <edumazet@google.com>,
"Florian Fainelli" <f.fainelli@gmail.com>,
"George McCollister" <george.mccollister@gmail.com>,
"Hauke Mehrtens" <hauke@hauke-m.de>,
"Jakub Kicinski" <kuba@kernel.org>,
"Kurt Kanzenbach" <kurt@linutronix.de>,
"Landen Chao" <Landen.Chao@mediatek.com>,
"Linus Walleij" <linus.walleij@linaro.org>,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org,
"Matthias Brugger" <matthias.bgg@gmail.com>,
netdev@vger.kernel.org, "Paolo Abeni" <pabeni@redhat.com>,
"Sean Wang" <sean.wang@mediatek.com>,
UNGLinuxDriver@microchip.com,
"Vivien Didelot" <vivien.didelot@gmail.com>,
"Woojung Huh" <woojung.huh@microchip.com>,
"Marek Behún" <kabel@kernel.org>
Subject: Re: [PATCH RFC net-next 5/5] net: dsa: always use phylink for CPU and DSA ports
Date: Thu, 7 Jul 2022 17:32:57 +0100 [thread overview]
Message-ID: <YscKuTXeXFX0tCap@shell.armlinux.org.uk> (raw)
In-Reply-To: <20220707154303.236xaeape7isracw@skbuf>
On Thu, Jul 07, 2022 at 06:43:03PM +0300, Vladimir Oltean wrote:
> On Thu, Jul 07, 2022 at 12:00:54PM +0100, Russell King (Oracle) wrote:
> > More importantly, we need your input on Ocelot, which you are listed as
> > a maintainer for, and Ocelot is the only DSA driver that does stuff
> > differently (due to the rate adapting PCS). It doesn't set
> > mac_capabilities, and therefore phylink_set_max_fixed_link() will not
> > work here.
> >
> > Has Ocelot ever made use of this DSA feature where, when nothing is
> > specified for a CPU or DSA port, we use an effective fixed-link setup
> > with an interface mode that gives the highest speed? Or does this not
> > apply to this DSA driver?
> >
> > Thanks.
>
> I'm fine with both the ocelot and sja1105 drivers.
>
> The ocelot driver has 3 users:
>
> - felix_vsc9959 (arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi) on NXP
> LS1028A, where the CPU ports have and have always had a fixed-link
> node in the SoC dtsi. LS1028A based boards should include the SoC
> dtsi. If other board DT writers don't do that or if they delete the
> fixed-link node from the CPU ports, that's not my problem and I don't
> really want to help them.
>
> - seville_vsc9953 (arch/powerpc/boot/dts/fsl/t1040si-post.dtsi) on NXP
> T1040. Same thing, embedded switch, not my fault if the fixed-link
> disappears from the SoC dtsi.
Great, so I'll mark ocelot is safe.
> - Colin Foster's SPI-controlled VSC7512 (still downstream). He has an
> Ethernet cable connecting the CPU port to a Beaglebone Black, so he
> has a phy-handle on the CPU port, so definitely not nothing. I believe
> his work hasn't made it to production in any case, so enforcing
> validation now shouldn't bother him too much if at all.
Ok, thanks.
> As for sja1105, there is DT validation that checks for the presence of
> all required properties in sja1105_parse_ports_node().
Looking at those, it requires all of:
- a phy mode to be specified (as determined by of_get_phy_mode())
- a phy-handle or of_phy_is_fixed_link() to return true
otherwise it errors out.
> There is some DT validation in felix_parse_ports_node() too, but it
> doesn't check that all specifiers that phylink might use are there.
Phylink (correction, fwnode_get_phy_node() which is not part of phylink
anymore) will look for phy-handle, phy, or phy-device. This is I don't
see that there's any incompatibility between what the driver is doing
and what phylink does.
If there's a fixed-link property, then sja1105_parse_ports_node() is
happy, and so will phylink. If there's a phy-handle, the same is true.
If there's a "phy" or "phy-device" then sja1105_parse_ports_node()
errors out. That's completely fine.
"phy" and "phy-device" are the backwards compatibility for DT - I
believe one of them is the ePAPR specified property that we in Linux
have decided to only fall back on if there's not our more modern
"phy-handle" property.
It seems We have a lot of users of "phy" in DT today, so we can't drop
that from generic code such as phylink, but I haven't found any users
of "phy-device".
> I'd really like to add some validation before I gain any involuntary
> users, but all open-coded constructs I can come up with are clumsy.
> What would you suggest, if I explicitly don't want to rely on
> context-specific phylink interpretation of empty OF nodes, and rather
> error out?
So I also don't see a problem - sja1105 rejects DTs that fail to
describe a port using at least one of a phy-handle, a fixed-link, or
a managed in-band link, and I don't think it needs to do further
validation, certainly not for the phy describing properties that
the kernel has chosen to deprecate for new implementations.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-07-07 16:35 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-05 9:46 [PATCH RFC net-next v2 0/5] net: dsa: always use phylink Russell King (Oracle)
2022-07-05 9:46 ` Russell King (Oracle)
2022-07-05 9:47 ` [PATCH RFC net-next 1/5] net: dsa: add support for retrieving the interface mode Russell King (Oracle)
2022-07-05 9:47 ` Russell King (Oracle)
2022-07-05 9:47 ` [PATCH RFC net-next 2/5] net: dsa: mv88e6xxx: report the default interface mode for the port Russell King (Oracle)
2022-07-05 9:47 ` Russell King (Oracle)
2022-07-05 10:55 ` Marek Behún
2022-07-05 10:55 ` Marek Behún
2022-07-06 11:04 ` kernel test robot
2022-07-05 9:47 ` [PATCH RFC net-next 3/5] net: phylink: split out interface to caps translation Russell King (Oracle)
2022-07-05 9:47 ` Russell King (Oracle)
2022-07-05 9:48 ` [PATCH RFC net-next 4/5] net: phylink: add phylink_set_max_fixed_link() Russell King (Oracle)
2022-07-05 9:48 ` Russell King (Oracle)
2022-07-05 10:58 ` Marek Behún
2022-07-05 10:58 ` Marek Behún
2022-07-05 9:48 ` [PATCH RFC net-next 5/5] net: dsa: always use phylink for CPU and DSA ports Russell King (Oracle)
2022-07-05 9:48 ` Russell King (Oracle)
2022-07-06 10:26 ` Vladimir Oltean
2022-07-06 10:26 ` Vladimir Oltean
2022-07-06 16:24 ` Russell King (Oracle)
2022-07-06 16:24 ` Russell King (Oracle)
2022-07-07 10:09 ` Russell King (Oracle)
2022-07-07 10:09 ` Russell King (Oracle)
2022-07-07 15:27 ` Vladimir Oltean
2022-07-07 15:27 ` Vladimir Oltean
2022-07-07 15:48 ` Russell King (Oracle)
2022-07-07 15:48 ` Russell King (Oracle)
2022-07-07 16:38 ` Vladimir Oltean
2022-07-07 16:38 ` Vladimir Oltean
2022-07-07 17:15 ` Russell King (Oracle)
2022-07-07 17:15 ` Russell King (Oracle)
2022-07-07 19:37 ` Vladimir Oltean
2022-07-07 19:37 ` Vladimir Oltean
2022-07-07 20:23 ` Russell King (Oracle)
2022-07-07 20:23 ` Russell King (Oracle)
2022-07-07 21:48 ` Vladimir Oltean
2022-07-07 21:48 ` Vladimir Oltean
2022-07-08 15:25 ` Russell King (Oracle)
2022-07-08 15:25 ` Russell King (Oracle)
2022-07-08 15:40 ` Marek Behún
2022-07-08 15:40 ` Marek Behún
2022-07-07 11:00 ` Russell King (Oracle)
2022-07-07 11:00 ` Russell King (Oracle)
2022-07-07 15:43 ` Vladimir Oltean
2022-07-07 15:43 ` Vladimir Oltean
2022-07-07 16:32 ` Russell King (Oracle) [this message]
2022-07-07 16:32 ` Russell King (Oracle)
2022-07-07 16:50 ` Vladimir Oltean
2022-07-07 16:50 ` Vladimir Oltean
2022-07-05 16:42 ` [PATCH RFC net-next v2 0/5] net: dsa: always use phylink Florian Fainelli
2022-07-05 16:42 ` Florian Fainelli
2022-07-06 10:14 ` Vladimir Oltean
2022-07-06 10:14 ` Vladimir Oltean
2022-07-06 16:27 ` Florian Fainelli
2022-07-06 16:27 ` Florian Fainelli
2022-07-06 19:05 ` Hauke Mehrtens
2022-07-06 19:05 ` Hauke Mehrtens
2022-07-06 20:24 ` Russell King (Oracle)
2022-07-06 20:24 ` Russell King (Oracle)
2022-07-06 17:22 ` Kurt Kanzenbach
2022-07-06 17:22 ` Kurt Kanzenbach
2022-07-06 22:46 ` Linus Walleij
2022-07-06 22:46 ` Linus Walleij
2022-07-07 13:46 ` Linus Walleij
2022-07-07 13:46 ` Linus Walleij
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=YscKuTXeXFX0tCap@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=Landen.Chao@mediatek.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=alexandre.belloni@bootlin.com \
--cc=alsi@bang-olufsen.dk \
--cc=andrew@lunn.ch \
--cc=claudiu.manoil@nxp.com \
--cc=davem@davemloft.net \
--cc=dqfext@gmail.com \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=george.mccollister@gmail.com \
--cc=hauke@hauke-m.de \
--cc=hkallweit1@gmail.com \
--cc=kabel@kernel.org \
--cc=kuba@kernel.org \
--cc=kurt@linutronix.de \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=sean.wang@mediatek.com \
--cc=vivien.didelot@gmail.com \
--cc=woojung.huh@microchip.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.