Message ID | 20220408070357.559899-1-horatiu.vultur@microchip.com (mailing list archive) |
---|---|
Headers | show |
Series | net: lan966x: Add support for FDMA | expand |
Hello: This series was applied to netdev/net-next.git (master) by Jakub Kicinski <kuba@kernel.org>: On Fri, 8 Apr 2022 09:03:53 +0200 you wrote: > Currently when injecting or extracting a frame from CPU, the frame > is given to the HW each word at a time. There is another way to > inject/extract frames from CPU using FDMA(Frame Direct Memory Access). > In this way the entire frame is given to the HW. This improves both > RX and TX bitrate. > > Tested-by: Michael Walle <michael@walle.cc> # on kontron-kswitch-d10 > > [...] Here is the summary with links: - [net-next,v4,1/4] net: lan966x: Add registers that are used for FDMA. https://git.kernel.org/netdev/net-next/c/fdb2981c00bb - [net-next,v4,2/4] net: lan966x: Expose functions that are needed by FDMA https://git.kernel.org/netdev/net-next/c/8f2c7d9ad778 - [net-next,v4,3/4] net: lan966x: Add FDMA functionality https://git.kernel.org/netdev/net-next/c/c8349639324a - [net-next,v4,4/4] net: lan966x: Update FDMA to change MTU. https://git.kernel.org/netdev/net-next/c/2ea1cbac267e You are awesome, thank you!
Currently when injecting or extracting a frame from CPU, the frame is given to the HW each word at a time. There is another way to inject/extract frames from CPU using FDMA(Frame Direct Memory Access). In this way the entire frame is given to the HW. This improves both RX and TX bitrate. Tested-by: Michael Walle <michael@walle.cc> # on kontron-kswitch-d10 v3->v4: - fix race conditions when changing the MTU - build skbs once frames are received and not before - use NAPI_POLL_WEIGHT instead of FDMA_WEIGHT v2->v3: - move skb_tx_timestamp before the IFH is inserted, because in case of PHY timestamping, the PHY should not see the IFH. - use lower/upper_32_bits() - reimplement the RX path in case of memory pressure. - use devm_request_irq instead of devm_request_threaded_irq - add various checks for return values. v1->v2: - fix typo in commit message in last patch - remove first patch as the changes are already there - make sure that there is space in skb to put the FCS - move skb_tx_timestamp closer to the handover of the frame to the HW Horatiu Vultur (4): net: lan966x: Add registers that are used for FDMA. net: lan966x: Expose functions that are needed by FDMA net: lan966x: Add FDMA functionality net: lan966x: Update FDMA to change MTU. .../net/ethernet/microchip/lan966x/Makefile | 2 +- .../ethernet/microchip/lan966x/lan966x_fdma.c | 842 ++++++++++++++++++ .../ethernet/microchip/lan966x/lan966x_main.c | 59 +- .../ethernet/microchip/lan966x/lan966x_main.h | 117 +++ .../ethernet/microchip/lan966x/lan966x_port.c | 3 + .../ethernet/microchip/lan966x/lan966x_regs.h | 106 +++ 6 files changed, 1117 insertions(+), 12 deletions(-) create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c