[PATCH net-next v8 0/4] net: rnpgbe: Add TX/RX and link status support

From: Dong Yibo

Date: Fri Jul 31 2026 - 08:13:46 EST


Hi maintainers,

This patch series adds the packet transmission, reception, and link status
management features to the RNPGBE driver, building upon the previously
introduced mailbox communication and basic driver infrastructure.

The series introduces:
- MSI-X/MSI interrupt handling with NAPI support
- TX path with scatter-gather DMA and completion handling
- RX path with page pool buffer management
- Link status monitoring and carrier management

These changes enable the RNPGBE driver to support basic TX/RX
network operations.

---
Changelog:
v7 -> v8:
[patch 1/4]:
1. Update kernel-doc for rnpgbe_poll. (Sashiko-nipa)
2. Move mbx-handler from hardirq to workqueue. (Sashiko-gemini)
[patch 2/4]:
1. Add fallback for dma_set_mask_and_coherent. (Sashiko-nipa)
2. Move the posted-write flush in rnpgbe_irq_disable_queues()
to patch 1.
3. Make atomic64_read outside eth u64_stats_fetch_begin/retry
loop. (Sashiko-nipa)
4. Fix comments in rnpgbe_clean_tx_ring. (Sashiko-nipa)
5. Fix the duplicate call to rnpgbe_clean_tx_ring in
rnpgbe_close. (Sashiko-nipa)
6. Remove the redundant netif_tx_stop_all_queues() call
before netif_tx_disable().
7. Use modulo for ring->next_to_clean in
rnpgbe_configure_tx_ring. (Sashiko-nipa)
8. Set 'dma_unmap_len_set(tx_buffer, len, 0)' for all tx_buffer_info[]
slots. (Sashiko-nipa)
9. Remove duplicate define RNPGBE_DMA_INT_TRIG. (Sashiko-nipa)
10. Optimize delay when stop rings. (Sashiko-nipa)
[patch 3/4]:
1. Fix comments in rnpgbe_clean_rx_ring. (Sashiko-nipa)
2. Move atomic64_read outside eth u64_stats_fetch_begin/retry
loop. (Sashiko-nipa)
3. Use modulo for ring->next_to_clean in
rnpgbe_configure_rx_ring. (Sashiko-nipa)
4. Fix the duplicate call to rnpgbe_clean_rx_ring in
rnpgbe_close. (Sashiko-nipa)
5. Fix NULL pointer in rnpgbe_alloc_retry_work. (Sashiko-gemini)
6. Call alloc_retry_work if rnpgbe_alloc_rx_buffers fails in
rnpgbe_configure_rx_ring. (Sashiko-nipa)
7. Optimize the delay when stopping rings. (Sashiko-nipa)
[patch 4/4]:
1. Clean the link status before sending the port-up
notification. (Sashiko-gemini)
2. Remove the unused irq_en state and completion-based reply handling to
simplify the mailbox code.
3. Move netdev_info() after releasing the lock. (Sashiko-nipa)

Links:
v1: https://lore.kernel.org/netdev/20260325091204.94015-1-dong100@xxxxxxxxx/
v2: https://lore.kernel.org/netdev/20260403025713.527841-1-dong100@xxxxxxxxx/
v3: https://lore.kernel.org/netdev/20260507081539.171844-1-dong100@xxxxxxxxx/
v4: https://lore.kernel.org/netdev/20260526033539.164061-1-dong100@xxxxxxxxx/
v5: https://lore.kernel.org/netdev/20260528023150.239532-1-dong100@xxxxxxxxx/
v6: https://lore.kernel.org/netdev/20260604112750.769215-1-dong100@xxxxxxxxx/
v7: https://lore.kernel.org/netdev/20260611100036.36370-1-dong100@xxxxxxxxx/

---

Dong Yibo (4):
net: rnpgbe: Add interrupt handling
net: rnpgbe: Add basic TX packet transmission support
net: rnpgbe: Add RX packet reception support
net: rnpgbe: Add link status handling support

drivers/net/ethernet/mucse/Kconfig | 1 +
drivers/net/ethernet/mucse/rnpgbe/Makefile | 3 +-
drivers/net/ethernet/mucse/rnpgbe/rnpgbe.h | 200 +-
.../net/ethernet/mucse/rnpgbe/rnpgbe_chip.c | 45 +-
drivers/net/ethernet/mucse/rnpgbe/rnpgbe_hw.h | 19 +
.../net/ethernet/mucse/rnpgbe/rnpgbe_lib.c | 2204 +++++++++++++++++
.../net/ethernet/mucse/rnpgbe/rnpgbe_lib.h | 87 +
.../net/ethernet/mucse/rnpgbe/rnpgbe_main.c | 116 +-
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.c | 32 +-
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.h | 1 +
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.c | 206 ++
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h | 45 +
12 files changed, 2935 insertions(+), 24 deletions(-)
create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.c
create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.h

--
2.25.1