linux/drivers/net/ethernet/renesas
Lad Prabhakar 706136c572 net: ravb: Ensure memory write completes before ringing TX doorbell
Add a final dma_wmb() barrier before triggering the transmit request
(TCCR_TSRQ) to ensure all descriptor and buffer writes are visible to
the DMA engine.

According to the hardware manual, a read-back operation is required
before writing to the doorbell register to guarantee completion of
previous writes. Instead of performing a dummy read, a dma_wmb() is
used to both enforce the same ordering semantics on the CPU side and
also to ensure completion of writes.

Fixes: c156633f13 ("Renesas Ethernet AVB driver proper")
Cc: stable@vger.kernel.org
Co-developed-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Link: https://patch.msgid.link/20251017151830.171062-5-prabhakar.mahadev-lad.rj@bp.renesas.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-10-22 18:15:14 -07:00
..
Kconfig net: ethernet: rtsn: Add support for Renesas Ethernet-TSN 2024-06-21 12:24:54 +01:00
Makefile net: renesas: rswitch: add offloading for L2 switching 2025-09-04 09:43:23 +02:00
ravb.h net: ravb: Add VLAN checksum support 2024-10-17 21:24:25 -05:00
ravb_main.c net: ravb: Ensure memory write completes before ringing TX doorbell 2025-10-22 18:15:14 -07:00
ravb_ptp.c net: ptp: introduce .supported_perout_flags to ptp_clock_info 2025-04-15 20:20:58 -07:00
rcar_gen4_ptp.c net: ethernet: renesas: rcar_gen4_ptp: Use lockdep to verify internal usage 2025-09-11 18:34:34 -07:00
rcar_gen4_ptp.h net: ethernet: renesas: rcar_gen4_ptp: Hide register layout 2025-09-11 18:34:33 -07:00
rswitch.h net: renesas: rswitch: add offloading for L2 switching 2025-09-04 09:43:23 +02:00
rswitch_l2.c net: renesas: rswitch: add modifiable ageing time 2025-09-04 09:43:23 +02:00
rswitch_l2.h net: renesas: rswitch: add offloading for L2 switching 2025-09-04 09:43:23 +02:00
rswitch_main.c net: renesas: rswitch: Remove unneeded semicolons 2025-09-26 15:10:08 -07:00
rtsn.c net: ethernet: renesas: rcar_gen4_ptp: Remove different memory layout 2025-09-11 18:34:33 -07:00
rtsn.h net: ethernet: rtsn: Add support for Renesas Ethernet-TSN 2024-06-21 12:24:54 +01:00
sh_eth.c net: sh_eth: Disable WoL if system can not suspend 2025-09-10 17:58:35 -07:00
sh_eth.h