From: Antoine Tenart <antoine.tenart@free-electrons.com>
To: Russell King - ARM Linux <linux@armlinux.org.uk>
Cc: Antoine Tenart <antoine.tenart@free-electrons.com>,
davem@davemloft.net, kishon@ti.com, andrew@lunn.ch,
jason@lakedaemon.net, sebastian.hesselbarth@gmail.com,
gregory.clement@free-electrons.com, mw@semihalf.com,
stefanc@marvell.com, ymarkman@marvell.com,
thomas.petazzoni@free-electrons.com,
miquel.raynal@free-electrons.com, nadavh@marvell.com,
netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Jon Nettleton <jon@solid-run.com>
Subject: Re: [PATCH net-next 5/6] arm64: dts: marvell: mcbin: enable the fourth network interface
Date: Fri, 29 Dec 2017 22:41:12 +0100 [thread overview]
Message-ID: <20171229214112.GB4835@kwain> (raw)
In-Reply-To: <20171228185920.GW10595@n2100.armlinux.org.uk>
Hi Russell,
On Thu, Dec 28, 2017 at 06:59:21PM +0000, Russell King - ARM Linux wrote:
> On Thu, Dec 28, 2017 at 11:04:16AM +0100, Antoine Tenart wrote:
> >
> > That's not what I remembered. You had some valid points, and others
> > related to PHY modes the driver wasn't supporting before the phylink
> > transition. My understanding of this was that you wanted a full
> > featured support while I only wanted to convert the already supported
> > modes.
>
> You are mistaken - you can get a full refresher on where things were
> at via https://patchwork.kernel.org/patch/9963971/
I read it again and still have the same feeling. There's been a
misunderstanding at some point. Anyway, let's move forward :)
> 1. I asked for details about what mvpp2.c supports that phylink does
> not (as you indicated that there were certain things that mvpp2
> supports that phylink does not.) I'm still awaiting a response.
I don't remember PHY modes supported in the PPv2 driver that aren't
supported in PHYLINK. I think this point is the main misunderstanding. I
thought you wanted me to support modes unsupported in the PPv2 driver
before. But you explained quite well what these comments were about
below.
So I guess this point is resolved (aka I'll have to take your comments
into account for the v2).
> 2. 25th Sept, you indicated that you would get someone to test
> an issue related to in-band AN. No results of that testing have
> been forthcoming.
That's right. I asked someone to make a test, but did not get an answer.
And because the PHYLINK patch stalled on my side I kinda forget about
it. I'll try again to have this test made.
> I am not after a full featured support, what I'm after is ensuring
> that phylink is (a) used correctly and (b) implementations using it
> are correct. Part of that is ensuring that users don't introduce
> unexpected failure conditions.
>
> So, when you do this in the validate() callback:
>
> + phylink_set(mask, 1000baseX_Full);
>
> and then do this in the mac_config() callback:
>
> + if (!phy_interface_mode_is_rgmii(port->phy_interface) &&
> + port->phy_interface != PHY_INTERFACE_MODE_SGMII)
> + return;
>
> and this in the link_state() callback:
>
> + if (!phy_interface_mode_is_rgmii(port->phy_interface) &&
> + port->phy_interface != PHY_INTERFACE_MODE_SGMII)
> + return 0;
>
> the result is that phylink thinks that you support 1000base-X modes,
> and it will call mac_config() asking for 1000base-X, but you silently
> ignore that, leaving the hardware configured in whatever state it was.
> That leads to a silent failure as far as the user is concerned.
>
> So, if you do not intend to support 1000base-X initially, don't
> allow it in the validate callback until you do.
>
> It gets worse, because the return in link_state() means that phylink
> thinks that the link is up if it has requested 1000base-X, which it
> won't be unless you've properly configured it.
>
> It's this kind of unreliability that I was concerned about in your
> patch. I'm not demanding "full featured implementation" but I do
> want you to use it correctly.
Thanks for the detailed explanations!
> > > What I'm most concerned about, given the bindings for comphy that
> > > have been merged, is that Free Electrons is pushing forward seemingly
> > > with no regard to the requirement that the serdes lanes are dynamically
> > > reconfigurable, and that's a basic requirement for SFP, and for the
> > > 88x3310 PHYs on the Macchiatobin platform.
> >
> > The main idea behind the comphy driver is to provide a way to
> > reconfigure the serdes lanes at runtime. Could you develop what are
> > blocking points to properly support SFP, regarding the current comphy
> > support?
>
> If it supports serdes lane mode reconfiguration (iow, switching between
> 1000base-X, 2500base-X, SGMII, 10G-KR), then that's all that's required.
It does, and the PPv2 driver already ask the COMPHY driver to perform
these reconfigurations (when using the 10G/1G interface on the mcbin for
example).
Thanks!
Antoine
--
Antoine Ténart, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
next prev parent reply other threads:[~2017-12-29 21:41 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-27 22:14 [PATCH net-next 0/6] net: mvpp2: 1000BaseX and 2000BaseX support Antoine Tenart
2017-12-27 22:14 ` [PATCH net-next 1/6] phy: add 2.5G SGMII mode to the phy_mode enum Antoine Tenart
2017-12-28 7:20 ` Andrew Lunn
2017-12-28 10:06 ` Antoine Tenart
2017-12-28 14:16 ` Florian Fainelli
2017-12-28 18:24 ` Antoine Tenart
2018-01-03 14:35 ` Antoine Tenart
2018-01-03 15:08 ` Andrew Lunn
2018-01-03 17:29 ` Russell King - ARM Linux
2017-12-27 22:14 ` [PATCH net-next 2/6] phy: cp110-comphy: 2.5G SGMII mode Antoine Tenart
2017-12-27 22:14 ` [PATCH net-next 3/6] net: mvpp2: 1000baseX support Antoine Tenart
2017-12-27 22:14 ` [PATCH net-next 4/6] net: mvpp2: 2500baseX support Antoine Tenart
2017-12-27 22:14 ` [PATCH net-next 5/6] arm64: dts: marvell: mcbin: enable the fourth network interface Antoine Tenart
2017-12-27 22:24 ` Russell King - ARM Linux
2017-12-27 22:42 ` Antoine Tenart
2017-12-27 23:20 ` Russell King - ARM Linux
2017-12-28 10:04 ` Antoine Tenart
2017-12-28 18:59 ` Russell King - ARM Linux
2017-12-29 21:41 ` Antoine Tenart [this message]
2017-12-28 7:46 ` Andrew Lunn
2017-12-28 10:05 ` Antoine Tenart
2017-12-28 15:02 ` Florian Fainelli
2017-12-28 18:27 ` Antoine Tenart
2017-12-28 18:46 ` Russell King - ARM Linux
2017-12-29 11:12 ` Marcin Wojtas
2017-12-29 11:38 ` Russell King - ARM Linux
2017-12-30 16:34 ` Marcin Wojtas
2017-12-30 17:31 ` Russell King - ARM Linux
2018-01-01 10:18 ` Marcin Wojtas
2018-01-01 10:35 ` [EXT] " Stefan Chulski
2018-01-01 13:25 ` Russell King - ARM Linux
2018-01-03 17:00 ` Stefan Chulski
2018-01-03 17:54 ` Russell King - ARM Linux
2018-01-03 18:17 ` Marcin Wojtas
2018-01-03 18:26 ` Stefan Chulski
2017-12-27 22:14 ` [PATCH net-next 6/6] arm64: dts: marvell: add Ethernet aliases Antoine Tenart
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=20171229214112.GB4835@kwain \
--to=antoine.tenart@free-electrons.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=gregory.clement@free-electrons.com \
--cc=jason@lakedaemon.net \
--cc=jon@solid-run.com \
--cc=kishon@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=miquel.raynal@free-electrons.com \
--cc=mw@semihalf.com \
--cc=nadavh@marvell.com \
--cc=netdev@vger.kernel.org \
--cc=sebastian.hesselbarth@gmail.com \
--cc=stefanc@marvell.com \
--cc=thomas.petazzoni@free-electrons.com \
--cc=ymarkman@marvell.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 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).