Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

net: ethernet: ravb: Suspend and resume the transmission flow

The current driver does not follow the latest datasheet and does not
suspend the flow when stopping DMA and resume it when starting. Update
the driver to do so.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
[Niklas: Rebase from BSP and reword commit message]
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Link: https://patch.msgid.link/20260401183608.1852225-1-niklas.soderlund+renesas@ragnatech.se
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Yoshihiro Shimoda and committed by
Jakub Kicinski
353d8e79 48a5e77b

+9
+9
drivers/net/ethernet/renesas/ravb_main.c
··· 694 694 const struct ravb_hw_info *info = priv->info; 695 695 int error; 696 696 697 + /* Clear transmission suspension */ 698 + ravb_modify(ndev, CCC, CCC_DTSR, 0); 699 + 697 700 /* Set CONFIG mode */ 698 701 error = ravb_set_opmode(ndev, CCC_OPC_CONFIG); 699 702 if (error) ··· 1105 1102 error = ravb_wait(ndev, CSR, CSR_RPO, 0); 1106 1103 if (error) 1107 1104 return error; 1105 + 1106 + /* Request for transmission suspension */ 1107 + ravb_modify(ndev, CCC, CCC_DTSR, CCC_DTSR); 1108 + error = ravb_wait(ndev, CSR, CSR_DTS, CSR_DTS); 1109 + if (error) 1110 + netdev_err(ndev, "failed to stop AXI BUS\n"); 1108 1111 1109 1112 /* Stop AVB-DMAC process */ 1110 1113 return ravb_set_opmode(ndev, CCC_OPC_CONFIG);