From: Daniel Machon <daniel.machon@microchip.com>
To: Horatiu Vultur <horatiu.vultur@microchip.com>,
<UNGLinuxDriver@microchip.com>,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Jesper Dangaard Brouer <hawk@kernel.org>,
"John Fastabend" <john.fastabend@gmail.com>
Cc: <netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<bpf@vger.kernel.org>
Subject: [PATCH net-next 00/12] net: lan966x: use the newly introduced FDMA library
Date: Thu, 5 Sep 2024 10:06:28 +0200 [thread overview]
Message-ID: <20240905-fdma-lan966x-v1-0-e083f8620165@microchip.com> (raw)
This patch series is the second of a 2-part series [1], that adds a new
common FDMA library for Microchip switch chips Sparx5 and lan966x. These
chips share the same FDMA engine, and as such will benefit from a common
library with a common implementation. This also has the benefit of
removing a lot of open-coded bookkeeping and duplicate code for the two
drivers.
In this second series, the FDMA library will be taken into use by the
lan966x switch driver.
###################
# Example of use: #
###################
- Initialize the rx and tx fdma structs with values for: number of
DCB's, number of DB's, channel ID, DB size (data buffer size), and
total size of the requested memory. Also provide two callbacks:
nextptr_cb() and dataptr_cb() for getting the nextptr and dataptr.
- Allocate memory using fdma_alloc_phys() or fdma_alloc_coherent().
- Initialize the DCB's with fdma_dcb_init().
- Add new DCB's with fdma_dcb_add().
- Free memory with fdma_free_phys() or fdma_free_coherent().
#####################
# Patch breakdown: #
#####################
Patch #1: select FDMA library for lan966x.
Patch #2: includes the fdma_api.h header and removes old symbols.
Patch #3: replaces old rx and tx variables with equivalent ones from the
fdma struct. Only the variables that can be changed without
breaking traffic is changed in this patch.
Patch #4: uses the library for allocation of rx buffers. This requires
quite a bit of refactoring in this single patch.
Patch #5: uses the library for adding DCB's in the rx path.
Patch #6: uses the library for freeing rx buffers.
Patch #7: uses the library for allocation of tx buffers. This requires
quite a bit of refactoring in this single patch.
Patch #8: uses the library for adding DCB's in the tx path.
Patch #9: uses the library helpers in the tx path.
Patch #10: ditch last_in_use variable and use library instead.
Patch #11: uses library helpers throughout.
Patch #12: refactor lan966x_fdma_reload() function.
[1] https://lore.kernel.org/netdev/20240902-fdma-sparx5-v1-0-1e7d5e5a9f34@microchip.com/
Signed-off-by: Daniel Machon <daniel.machon@microchip.com>
---
Daniel Machon (12):
net: lan966x: select FDMA library
net: lan966x: use FDMA library symbols
net: lan966x: replace a few variables with new equivalent ones
net: lan966x: use the FDMA library for allocation of rx buffers
net: lan966x: use FDMA library for adding DCB's in the rx path
net: lan966x: use library helper for freeing rx buffers
net: lan966x: use the FDMA library for allocation of tx buffers
net: lan966x: use FDMA library for adding DCB's in the tx path
net: lan966x: use library helper for freeing tx buffers
net: lan966x: ditch tx->last_in_use variable
net: lan966x: use a few FDMA helpers throughout
net: lan966x: refactor buffer reload function
drivers/net/ethernet/microchip/lan966x/Kconfig | 1 +
drivers/net/ethernet/microchip/lan966x/Makefile | 1 +
.../net/ethernet/microchip/lan966x/lan966x_fdma.c | 409 ++++++++-------------
.../net/ethernet/microchip/lan966x/lan966x_main.h | 58 +--
4 files changed, 164 insertions(+), 305 deletions(-)
---
base-commit: ff09bc366fc45861b35dfeac97baadee16f65aec
change-id: 20240904-fdma-lan966x-04281c53952b
Best regards,
--
Daniel Machon <daniel.machon@microchip.com>
next reply other threads:[~2024-09-05 8:07 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-05 8:06 Daniel Machon [this message]
2024-09-05 8:06 ` [PATCH net-next 01/12] net: lan966x: select FDMA library Daniel Machon
2024-09-05 8:06 ` [PATCH net-next 02/12] net: lan966x: use FDMA library symbols Daniel Machon
2024-09-05 8:06 ` [PATCH net-next 03/12] net: lan966x: replace a few variables with new equivalent ones Daniel Machon
2024-09-05 8:06 ` [PATCH net-next 04/12] net: lan966x: use the FDMA library for allocation of rx buffers Daniel Machon
2024-09-10 9:15 ` Paolo Abeni
2024-09-10 9:42 ` Daniel Machon
2024-09-05 8:06 ` [PATCH net-next 05/12] net: lan966x: use FDMA library for adding DCB's in the rx path Daniel Machon
2024-09-05 8:06 ` [PATCH net-next 06/12] net: lan966x: use library helper for freeing rx buffers Daniel Machon
2024-09-05 8:06 ` [PATCH net-next 07/12] net: lan966x: use the FDMA library for allocation of tx buffers Daniel Machon
2024-09-05 8:06 ` [PATCH net-next 08/12] net: lan966x: use FDMA library for adding DCB's in the tx path Daniel Machon
2024-09-05 8:06 ` [PATCH net-next 09/12] net: lan966x: use library helper for freeing tx buffers Daniel Machon
2024-09-05 8:06 ` [PATCH net-next 10/12] net: lan966x: ditch tx->last_in_use variable Daniel Machon
2024-09-05 8:06 ` [PATCH net-next 11/12] net: lan966x: use a few FDMA helpers throughout Daniel Machon
2024-09-05 8:06 ` [PATCH net-next 12/12] net: lan966x: refactor buffer reload function Daniel Machon
2024-09-10 9:20 ` [PATCH net-next 00/12] net: lan966x: use the newly introduced FDMA library patchwork-bot+netdevbpf
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=20240905-fdma-lan966x-v1-0-e083f8620165@microchip.com \
--to=daniel.machon@microchip.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=horatiu.vultur@microchip.com \
--cc=john.fastabend@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.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