From: "Marek Behún" <kabel@kernel.org>
To: "Russell King (Oracle)" <linux@armlinux.org.uk>, pali@kernel.org
Cc: Andrew Lunn <andrew@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Florian Fainelli <f.fainelli@gmail.com>,
Heiner Kallweit <hkallweit1@gmail.com>,
Jakub Kicinski <kuba@kernel.org>,
netdev@vger.kernel.org, Paolo Abeni <pabeni@redhat.com>,
Robert Hancock <robert.hancock@calian.com>,
Vivien Didelot <vivien.didelot@gmail.com>,
Vladimir Oltean <olteanv@gmail.com>
Subject: Re: [PATCH net-next 00/15] net: dsa: mv88e6xxx: convert to phylink pcs
Date: Mon, 13 Jun 2022 23:29:16 +0200 [thread overview]
Message-ID: <20220613232916.24888d46@thinkpad> (raw)
In-Reply-To: <Yqc0lxn3ngWSuvdS@shell.armlinux.org.uk>
On Mon, 13 Jun 2022 13:59:03 +0100
"Russell King (Oracle)" <linux@armlinux.org.uk> wrote:
> Hi,
>
> This series converts mv88e6xxx to use phylink pcs, which I believe is
> the last DSA driver that needs to be converted before we can declare
> the whole of DSA as non-phylink legacy.
>
> Briefly:
> Patches 1 and 2 introduce a new phylink_pcs_inband() helper to indicate
> whether inband AN should be used. Note that the first patch fixes a bug
> in the current c22 helper where the SGMII exchange with the PHY would
> be disabled when AN is turned off on the PHY copper side.
>
> Patch 3 gets rid of phylink's internal pcs_ops member, preferring
> instead to always use the version in the phylink_pcs structure.
> Changing this pointer is now no longer supported.
>
> Patch 4 makes PCS polling slightly cleaner, avoiding the poll being
> triggered while we're making changes to the configuration.
>
> Patch 5 and 6 introduce several PCS methods that are fundamentally
> necessary for mv88e6xxx to work around various issues - for example, in
> some devices, the PCS must be powered down when the CMODE field in the
> port control register is changed. In other devices, there are
> workarounds that need to be performed.
>
> Patch 7 adds unlocked mdiobus and mdiodev accessors to complement the
> locking versions that are already there - which are needed for some of
> the mv88e6xxx conversions.
>
> Patch 8 prepares DSA as a whole, adding support for the phylink
> mac_prepare() and mac_finish() methods. These two methods are used to
> force the link down over a major reconfiguration event, which has been
> found by people to be necessary on mv88e6xxx devices. These haven't
> been required until now as everything has been done via the
> mac_config() callback - which won't be true once we switch to
> phylink_pcs.
>
> Patch 9 implements patch 8 on this driver.
>
> Patches 10 and 11 prepare mv88e6xxx for the conversion.
>
> Patches 12 through to 14 convert each "serdes" to phylink_pcs.
>
> Patch 15 cleans up after the conversion.
>
> drivers/net/dsa/mv88e6xxx/Makefile | 3 +
> drivers/net/dsa/mv88e6xxx/chip.c | 480 ++++----------
> drivers/net/dsa/mv88e6xxx/chip.h | 25 +-
> drivers/net/dsa/mv88e6xxx/pcs-6185.c | 158 +++++
> drivers/net/dsa/mv88e6xxx/pcs-6352.c | 383 +++++++++++
> drivers/net/dsa/mv88e6xxx/pcs-639x.c | 834 ++++++++++++++++++++++++
> drivers/net/dsa/mv88e6xxx/port.c | 30 -
> drivers/net/dsa/mv88e6xxx/serdes.c | 1164 ++--------------------------------
> drivers/net/dsa/mv88e6xxx/serdes.h | 110 +---
> drivers/net/phy/mdio_bus.c | 24 +-
> drivers/net/phy/phylink.c | 141 ++--
> include/linux/mdio.h | 26 +
> include/linux/phylink.h | 44 ++
> include/net/dsa.h | 6 +
> net/dsa/port.c | 32 +
> 15 files changed, 1826 insertions(+), 1634 deletions(-)
>
Tested on Turris MOX, no regressions discovered so far.
Tested-by: Marek Behún <kabel@kernel.org>
But patches 06/15 and 14/15 need testing on CN9130-CRB: the SFP cage
needs to be tested in 2500base-x mode, and also switching between
2500base-x, sgmii, 5gbase-r and 10gbase-r.
Pali, could you find some time for this? I can direct you about how to
do this.
Marek
prev parent reply other threads:[~2022-06-13 21:31 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-13 12:59 [PATCH net-next 00/15] net: dsa: mv88e6xxx: convert to phylink pcs Russell King (Oracle)
2022-06-13 13:00 ` [PATCH net-next 01/15] net: phylink: fix SGMII inband autoneg enable Russell King (Oracle)
2022-06-14 18:34 ` Andrew Lunn
2022-06-13 13:00 ` [PATCH net-next 02/15] net: phylink: add phylink_pcs_inband() Russell King (Oracle)
2022-06-14 18:35 ` Andrew Lunn
2022-06-15 5:46 ` Jakub Kicinski
2022-06-15 8:16 ` Russell King (Oracle)
2022-06-15 17:46 ` Jakub Kicinski
2022-06-15 18:07 ` Russell King (Oracle)
2022-06-13 13:00 ` [PATCH net-next 03/15] net: phylink: remove pcs_ops member Russell King (Oracle)
2022-06-14 18:36 ` Andrew Lunn
2022-06-13 13:00 ` [PATCH net-next 04/15] net: phylink: disable PCS polling over major configuration Russell King (Oracle)
2022-06-14 18:37 ` Andrew Lunn
2022-06-13 13:00 ` [PATCH net-next 05/15] net: phylink: add pcs_enable()/pcs_disable() methods Russell King (Oracle)
2022-06-13 13:00 ` [PATCH net-next 06/15] net: phylink: add pcs_pre_config()/pcs_post_config() methods Russell King (Oracle)
2022-06-14 18:41 ` Andrew Lunn
2022-06-13 13:00 ` [PATCH net-next 07/15] net: mdio: add unlocked mdiobus and mdiodev bus accessors Russell King (Oracle)
2022-06-14 21:44 ` Andrew Lunn
2022-06-13 13:01 ` [PATCH net-next 08/15] net: dsa: add support for mac_prepare() and mac_finish() calls Russell King (Oracle)
2022-06-14 21:45 ` Andrew Lunn
2022-06-13 13:01 ` [PATCH net-next 09/15] net: dsa: mv88e6xxx: move link forcing to mac_prepare/mac_finish Russell King (Oracle)
2022-06-14 21:47 ` Andrew Lunn
2022-06-13 13:01 ` [PATCH net-next 10/15] net: dsa: mv88e6xxx: add infrastructure for phylink_pcs Russell King (Oracle)
2022-06-14 21:49 ` Andrew Lunn
2022-06-13 13:01 ` [PATCH net-next 11/15] net: dsa: mv88e6xxx: export mv88e6xxx_pcs_decode_state() Russell King (Oracle)
2022-06-14 21:50 ` Andrew Lunn
2022-06-13 13:01 ` [PATCH net-next 12/15] net: dsa: mv88e6xxx: convert 88e6185 to phylink_pcs Russell King (Oracle)
2022-06-14 21:53 ` Andrew Lunn
2022-06-13 13:01 ` [PATCH net-next 13/15] net: dsa: mv88e6xxx: convert 88e6352 " Russell King
2022-06-14 21:57 ` Andrew Lunn
2022-06-13 13:01 ` [PATCH net-next 14/15] net: dsa: mv88e6xxx: convert 88e639x " Russell King (Oracle)
2022-06-14 22:03 ` Andrew Lunn
2022-06-13 13:01 ` [PATCH net-next 15/15] net: dsa: mv88e6xxx: cleanup after phylink_pcs conversion Russell King (Oracle)
2022-06-14 22:03 ` Andrew Lunn
2022-06-13 21:29 ` Marek Behún [this message]
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=20220613232916.24888d46@thinkpad \
--to=kabel@kernel.org \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=pali@kernel.org \
--cc=robert.hancock@calian.com \
--cc=vivien.didelot@gmail.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.