All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: "Andrew Lunn" <andrew@lunn.ch>, "Marek Behún" <kabel@kernel.org>
Cc: "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: [PATCH net-next 00/15] net: dsa: mv88e6xxx: convert to phylink pcs
Date: Mon, 13 Jun 2022 13:59:03 +0100	[thread overview]
Message-ID: <Yqc0lxn3ngWSuvdS@shell.armlinux.org.uk> (raw)

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(-)

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

             reply	other threads:[~2022-06-13 17:37 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-13 12:59 Russell King (Oracle) [this message]
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 ` [PATCH net-next 00/15] net: dsa: mv88e6xxx: convert to phylink pcs 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=Yqc0lxn3ngWSuvdS@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=hkallweit1@gmail.com \
    --cc=kabel@kernel.org \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=pabeni@redhat.com \
    --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.