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

Dong Yibo posted 5 patches 1 day, 19 hours ago
drivers/net/ethernet/mucse/Kconfig            |    2 +
drivers/net/ethernet/mucse/rnpgbe/Makefile    |    3 +-
drivers/net/ethernet/mucse/rnpgbe/rnpgbe.h    |  210 +-
.../net/ethernet/mucse/rnpgbe/rnpgbe_chip.c   |  167 +-
drivers/net/ethernet/mucse/rnpgbe/rnpgbe_hw.h |   45 +
.../net/ethernet/mucse/rnpgbe/rnpgbe_lib.c    | 2258 +++++++++++++++++
.../net/ethernet/mucse/rnpgbe/rnpgbe_lib.h    |   88 +
.../net/ethernet/mucse/rnpgbe/rnpgbe_main.c   |  208 +-
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.c    |  179 +-
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.h    |    4 +
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.c |  283 +++
.../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h |   60 +
12 files changed, 3468 insertions(+), 39 deletions(-)
create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.c
create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.h
[PATCH net-next v15 0/5] net: rnpgbe: Add TX/RX and link status support
Posted by Dong Yibo 1 day, 19 hours ago
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 interrupt handling with NAPI support
- TX path with scatter-gather DMA and completion handling
- RX path with page pool buffer management
- Unicast/Multicast filter.
- Firmware link-event processing and carrier management

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

---
Changelog:
v14 -> v15:
[patch 1/5]:
1. Update the interrupt helper documentation to describe the MSI-X-only
   implementation instead of implying MSI or INTx fallback support.
2. Document in the commit message that mailbox transactions run in
   process context and use sleepable polling to acquire the hardware
   mailbox lock.
[patch 2/5]:
1. Document that carrier is kept off before register_netdev(), and is
   enabled only after a valid link state is reported by the later
   link-status patch.
[patch 3/5]:
1. Clarify that rnpgbe_is_non_eop() may consume and free the skb when the
   fragment limit is reached.
2. Avoid retrying a failed RX page allocation for every descriptor in the
   same NAPI poll. Check for pending refills after NAPI completes and use
   the per-q_vector timer for delayed retries.
3. Report invalid RX descriptor lengths through rx_errors and
   rx_length_errors instead of rx_dropped. Count at most one length error
   for each complete packet and protect the counter with the existing
   u64_stats_sync sequence.
4. Set the page-pool DMA synchronization window to start at
   RNPGBE_SKB_PAD and cover only RNPGBE_RX_DESC_DATA_LEN bytes. Use the
   same range when manually synchronizing reused pages.
5. Schedule the initial allocation retry only for batch-sized shortfalls.
   Leave smaller shortfalls to be replenished when traffic frees a full
   refill batch, and update the comment to describe this behavior.
[patch 4/5]:
1. Avoid transient receive-filter gaps when updating RAR and multicast
   filter state.
2. Switch the receive-mode implementation to ndo_set_rx_mode_async while
   retaining synchronous filter setup before RX is enabled.
[patch 5/5]:
1. Avoid a GMAC_CONTROL read-modify-write race with firmware during
   port-down by leaving GMAC receiver disablement to firmware after RX
   DMA has been quiesced.

Links:
v1:  https://lore.kernel.org/netdev/20260325091204.94015-1-dong100@mucse.com/
v2:  https://lore.kernel.org/netdev/20260403025713.527841-1-dong100@mucse.com/
v3:  https://lore.kernel.org/netdev/20260507081539.171844-1-dong100@mucse.com/
v4:  https://lore.kernel.org/netdev/20260526033539.164061-1-dong100@mucse.com/
v5:  https://lore.kernel.org/netdev/20260528023150.239532-1-dong100@mucse.com/
v6:  https://lore.kernel.org/netdev/20260604112750.769215-1-dong100@mucse.com/
v7:  https://lore.kernel.org/netdev/20260611100036.36370-1-dong100@mucse.com/
v8:  https://lore.kernel.org/netdev/20260731120322.895955-1-dong100@mucse.com/
v9:  https://lore.kernel.org/netdev/20260814111317.1741087-1-dong100@mucse.com/
v10: https://lore.kernel.org/netdev/F44E6669E6C9E7C4+20260831073608.401988-2-dong100@mucse.com/
v11: https://lore.kernel.org/netdev/745DADAC2A5786BD+20260911112416.2142101-1-dong100@mucse.com/
v12: https://lore.kernel.org/netdev/64BE41C2D2C0836A+20260914013019.2262317-1-dong100@mucse.com/
v13: https://lore.kernel.org/netdev/B8AF0FDE24FAFB51+20260920092424.345309-1-dong100@mucse.com/
v14: https://lore.kernel.org/netdev/0A4D45AD9F6A0F14+20260928033701.1033196-1-dong100@mucse.com/
---

Dong Yibo (5):
  net: rnpgbe: Add interrupt handling
  net: rnpgbe: Add basic TX packet transmission support
  net: rnpgbe: Add basic RX data path support
  net: rnpgbe: Add receive mode support
  net: rnpgbe: Add link status handling support

 drivers/net/ethernet/mucse/Kconfig            |    2 +
 drivers/net/ethernet/mucse/rnpgbe/Makefile    |    3 +-
 drivers/net/ethernet/mucse/rnpgbe/rnpgbe.h    |  210 +-
 .../net/ethernet/mucse/rnpgbe/rnpgbe_chip.c   |  167 +-
 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_hw.h |   45 +
 .../net/ethernet/mucse/rnpgbe/rnpgbe_lib.c    | 2258 +++++++++++++++++
 .../net/ethernet/mucse/rnpgbe/rnpgbe_lib.h    |   88 +
 .../net/ethernet/mucse/rnpgbe/rnpgbe_main.c   |  208 +-
 .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.c    |  179 +-
 .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx.h    |    4 +
 .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.c |  283 +++
 .../net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h |   60 +
 12 files changed, 3468 insertions(+), 39 deletions(-)
 create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.c
 create mode 100644 drivers/net/ethernet/mucse/rnpgbe/rnpgbe_lib.h

-- 
2.50.1