From: Antoine Tenart <antoine.tenart@bootlin.com>
To: davem@davemloft.net, linux@armlinux.org.uk
Cc: Antoine Tenart <antoine.tenart@bootlin.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
thomas.petazzoni@bootlin.com, maxime.chevallier@bootlin.com,
gregory.clement@bootlin.com, miquel.raynal@bootlin.com,
nadavh@marvell.com, stefanc@marvell.com, ymarkman@marvell.com,
mw@semihalf.com
Subject: [PATCH net-next 00/15] net: mvpp2: fixes and improvements
Date: Thu, 28 Feb 2019 14:21:13 +0100 [thread overview]
Message-ID: <20190228132128.30154-1-antoine.tenart@bootlin.com> (raw)
Hello,
This series aims to improve the Marvell PPv2 driver and to fix various
issues we encountered while testing the ports in many different
configurations. The series is based on top of Russell PPv2 phylink
rework and improvement.
I'm not sending a v2 of the previous fixes series as half the patches
are not the same and lots of development happened in between.
While this series contains fixes, it's sent to net-next as it is based
on top of Russell patches that were merged into net-next. I'm also
aiming at net-next as the series reworks critical paths of the PPv2
driver, such as the reset handling of various blocks, to let more weeks
for users to tests and for possible fixes to be sent before it lands
into a stable kernel version.
The series is divided into three parts:
- Patches 1 to 3 are cosmetic changes, sent alongside the series, as I
saw these small issues while working on this.
- Patches 5 to 8 are fixing (or improving) individual issues that we
found while testing PPv2.1 and PPv2.2 ports while using various
interfaces.
Notable fixes are we support back RGMII interfaces (on both PPv2.1 and
PPv2.2), as their support was broken by previous patches. We also
reworked the RXQ computation as the RXQ assignment was not checking
the maximum number of RXQ available, and was broken for PPv2.1.
- As discussed in a previous fixes series, patches 9 to 14 rework the
way blocks are set in reset in the PPv2 engine (plus related changes).
There are four blocks we want to control the reset status: two MAC
(GMAC and XLG MAC) and two PCS (MPCS and XPCS). The XLG MAC is used
for 10G connexions and uses the MPCS or the XPCS depending on the mode
used (10GKR / XAUI / RXAUI) and the GMAC is used for the other modes.
The idea is to set all blocks in reset by default, and when not used,
and to de-assert the reset only when a block is used. There are four
cases to take in account:
1. Boot time: all four blocks should be put in reset, as we do not
know their initial state (configured by the firmware/bootloader).
2. Link up: only the blocks used by a given mode should be put out of
reset (eg. 10GKR uses the XLG MAC and the MPCS).
3. Mode reconfiguration: some ports may support mode reconfiguration,
and switching between the GMAC and the XLG MAC (or between the two
PCS). All blocks should be put in reset, and only the one used
should be put out of reset.
4. Link down: all four blocks are put in reset.
Thanks!
Antoine
Antoine Tenart (15):
net: mvpp2: fix a typo in the header
net: mvpp2: update the port documentation regarding the GoP
net: mvpp2: fix alignment of MVPP2_GMAC_CONFIG_MII_SPEED definition
net: mvpp2: a port can be disabled even if we use the link IRQ
net: mvpp2: reconfiguring the port interface is PPv2.2 specific
net: mvpp2: fix validate for PPv2.1
net: mvpp2: fix the computation of the RXQs
net: mvpp2: some AN fields require the link to be down when updated
net: mvpp2: always disable both MACs when disabling a port
net: mvpp2: only update the XLG configuration when needed
net: mvpp2: force the XLG MAC link up or down when not using in-band
net: mvpp2: rework the XLG MAC reset handling
net: mvpp2: reset the MACs when reconfiguring a port
net: mvpp2: set the XPCS and MPCS in reset when not used
net: mvpp2: set the GMAC, XLG MAC, XPCS and MPCS in reset when a port
is down
drivers/net/ethernet/marvell/mvpp2/mvpp2.h | 11 +-
.../net/ethernet/marvell/mvpp2/mvpp2_main.c | 210 +++++++++++++-----
2 files changed, 156 insertions(+), 65 deletions(-)
--
2.20.1
next reply other threads:[~2019-02-28 13:26 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-28 13:21 Antoine Tenart [this message]
2019-02-28 13:21 ` [PATCH net-next 01/15] net: mvpp2: fix a typo in the header Antoine Tenart
2019-02-28 13:21 ` [PATCH net-next 02/15] net: mvpp2: update the port documentation regarding the GoP Antoine Tenart
2019-02-28 13:21 ` [PATCH net-next 03/15] net: mvpp2: fix alignment of MVPP2_GMAC_CONFIG_MII_SPEED definition Antoine Tenart
2019-02-28 13:21 ` [PATCH net-next 04/15] net: mvpp2: a port can be disabled even if we use the link IRQ Antoine Tenart
2019-02-28 13:21 ` [PATCH net-next 05/15] net: mvpp2: reconfiguring the port interface is PPv2.2 specific Antoine Tenart
2019-02-28 13:21 ` [PATCH net-next 06/15] net: mvpp2: fix validate for PPv2.1 Antoine Tenart
2019-02-28 13:21 ` [PATCH net-next 07/15] net: mvpp2: fix the computation of the RXQs Antoine Tenart
2019-02-28 15:40 ` [EXT] " Yan Markman
2019-02-28 15:50 ` Antoine Tenart
2019-02-28 15:53 ` Yan Markman
2019-02-28 13:21 ` [PATCH net-next 08/15] net: mvpp2: some AN fields require the link to be down when updated Antoine Tenart
2019-02-28 13:21 ` [PATCH net-next 09/15] net: mvpp2: always disable both MACs when disabling a port Antoine Tenart
2019-02-28 13:21 ` [PATCH net-next 10/15] net: mvpp2: only update the XLG configuration when needed Antoine Tenart
2019-02-28 13:21 ` [PATCH net-next 11/15] net: mvpp2: force the XLG MAC link up or down when not using in-band Antoine Tenart
2019-02-28 13:21 ` [PATCH net-next 12/15] net: mvpp2: rework the XLG MAC reset handling Antoine Tenart
2019-02-28 13:21 ` [PATCH net-next 13/15] net: mvpp2: reset the MACs when reconfiguring a port Antoine Tenart
2019-02-28 13:21 ` [PATCH net-next 14/15] net: mvpp2: set the XPCS and MPCS in reset when not used Antoine Tenart
2019-02-28 18:40 ` David Miller
2019-02-28 21:23 ` Antoine Tenart
2019-02-28 21:45 ` David Miller
2019-02-28 13:21 ` [PATCH net-next 15/15] net: mvpp2: set the GMAC, XLG MAC, XPCS and MPCS in reset when a port is down Antoine Tenart
2019-02-28 15:00 ` [EXT] " Yan Markman
2019-02-28 15:06 ` 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=20190228132128.30154-1-antoine.tenart@bootlin.com \
--to=antoine.tenart@bootlin.com \
--cc=davem@davemloft.net \
--cc=gregory.clement@bootlin.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=maxime.chevallier@bootlin.com \
--cc=miquel.raynal@bootlin.com \
--cc=mw@semihalf.com \
--cc=nadavh@marvell.com \
--cc=netdev@vger.kernel.org \
--cc=stefanc@marvell.com \
--cc=thomas.petazzoni@bootlin.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
all inboxes | Powered by JetHome®