public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* [net-next] net: ethernet: ravb: Suspend and resume the transmission flow
@ 2026-04-01 18:36 Niklas Söderlund
  2026-04-03 23:20 ` patchwork-bot+netdevbpf
  2026-04-07  9:03 ` Geert Uytterhoeven
  0 siblings, 2 replies; 4+ messages in thread
From: Niklas Söderlund @ 2026-04-01 18:36 UTC (permalink / raw)
  To: Paul Barker, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, netdev, linux-renesas-soc
  Cc: Yoshihiro Shimoda, Niklas Söderlund

From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>

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>
---
 drivers/net/ethernet/renesas/ravb_main.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
index 2c725824b348..1dbfadb2a881 100644
--- a/drivers/net/ethernet/renesas/ravb_main.c
+++ b/drivers/net/ethernet/renesas/ravb_main.c
@@ -694,6 +694,9 @@ static int ravb_dmac_init(struct net_device *ndev)
 	const struct ravb_hw_info *info = priv->info;
 	int error;
 
+	/* Clear transmission suspension */
+	ravb_modify(ndev, CCC, CCC_DTSR, 0);
+
 	/* Set CONFIG mode */
 	error = ravb_set_opmode(ndev, CCC_OPC_CONFIG);
 	if (error)
@@ -1103,6 +1106,12 @@ static int ravb_stop_dma(struct net_device *ndev)
 	if (error)
 		return error;
 
+	/* Request for transmission suspension */
+	ravb_modify(ndev, CCC, CCC_DTSR, CCC_DTSR);
+	error = ravb_wait(ndev, CSR, CSR_DTS, CSR_DTS);
+	if (error)
+		netdev_err(ndev, "failed to stop AXI BUS\n");
+
 	/* Stop AVB-DMAC process */
 	return ravb_set_opmode(ndev, CCC_OPC_CONFIG);
 }
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [net-next] net: ethernet: ravb: Suspend and resume the transmission flow
  2026-04-01 18:36 [net-next] net: ethernet: ravb: Suspend and resume the transmission flow Niklas Söderlund
@ 2026-04-03 23:20 ` patchwork-bot+netdevbpf
  2026-04-07  9:03 ` Geert Uytterhoeven
  1 sibling, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-04-03 23:20 UTC (permalink / raw)
  To: =?utf-8?q?Niklas_S=C3=B6derlund_=3Cniklas=2Esoderlund+renesas=40ragnatech=2E?=,
	=?utf-8?q?se=3E?=
  Cc: paul, andrew+netdev, davem, edumazet, kuba, pabeni, netdev,
	linux-renesas-soc, yoshihiro.shimoda.uh

Hello:

This patch was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Wed,  1 Apr 2026 20:36:08 +0200 you wrote:
> From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> 
> 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>
> 
> [...]

Here is the summary with links:
  - [net-next] net: ethernet: ravb: Suspend and resume the transmission flow
    https://git.kernel.org/netdev/net-next/c/353d8e7989b6

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [net-next] net: ethernet: ravb: Suspend and resume the transmission flow
  2026-04-01 18:36 [net-next] net: ethernet: ravb: Suspend and resume the transmission flow Niklas Söderlund
  2026-04-03 23:20 ` patchwork-bot+netdevbpf
@ 2026-04-07  9:03 ` Geert Uytterhoeven
  2026-04-07 18:54   ` Niklas Söderlund
  1 sibling, 1 reply; 4+ messages in thread
From: Geert Uytterhoeven @ 2026-04-07  9:03 UTC (permalink / raw)
  To: Niklas Söderlund, Yoshihiro Shimoda
  Cc: Paul Barker, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, netdev, linux-renesas-soc

Hi Niklas, Shimoda-san,

On Wed, 1 Apr 2026 at 20:39, Niklas Söderlund
<niklas.soderlund+renesas@ragnatech.se> wrote:
>
> From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
>
> 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>

Thanks for your patch, which is now commit 353d8e7989b6babe ("net:
ethernet: ravb: Suspend and resume the transmission flow") in
linux-next/master net-next.

> --- a/drivers/net/ethernet/renesas/ravb_main.c
> +++ b/drivers/net/ethernet/renesas/ravb_main.c
> @@ -694,6 +694,9 @@ static int ravb_dmac_init(struct net_device *ndev)
>         const struct ravb_hw_info *info = priv->info;
>         int error;
>
> +       /* Clear transmission suspension */
> +       ravb_modify(ndev, CCC, CCC_DTSR, 0);
> +
>         /* Set CONFIG mode */
>         error = ravb_set_opmode(ndev, CCC_OPC_CONFIG);
>         if (error)
> @@ -1103,6 +1106,12 @@ static int ravb_stop_dma(struct net_device *ndev)
>         if (error)
>                 return error;
>
> +       /* Request for transmission suspension */
> +       ravb_modify(ndev, CCC, CCC_DTSR, CCC_DTSR);
> +       error = ravb_wait(ndev, CSR, CSR_DTS, CSR_DTS);
> +       if (error)
> +               netdev_err(ndev, "failed to stop AXI BUS\n");

This error message is printed during resume from s2idle or s2ram on
e.g. Salvator-XS and Gray Hawk Single.  Ethernet (nfsroot) still works
fine, though.

> +
>         /* Stop AVB-DMAC process */
>         return ravb_set_opmode(ndev, CCC_OPC_CONFIG);
>  }

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [net-next] net: ethernet: ravb: Suspend and resume the transmission flow
  2026-04-07  9:03 ` Geert Uytterhoeven
@ 2026-04-07 18:54   ` Niklas Söderlund
  0 siblings, 0 replies; 4+ messages in thread
From: Niklas Söderlund @ 2026-04-07 18:54 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Yoshihiro Shimoda, Paul Barker, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev,
	linux-renesas-soc

Hi Geert,

Thanks for your report.

On 2026-04-07 11:03:38 +0200, Geert Uytterhoeven wrote:
> Hi Niklas, Shimoda-san,
> 
> On Wed, 1 Apr 2026 at 20:39, Niklas Söderlund
> <niklas.soderlund+renesas@ragnatech.se> wrote:
> >
> > From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> >
> > 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>
> 
> Thanks for your patch, which is now commit 353d8e7989b6babe ("net:
> ethernet: ravb: Suspend and resume the transmission flow") in
> linux-next/master net-next.
> 
> > --- a/drivers/net/ethernet/renesas/ravb_main.c
> > +++ b/drivers/net/ethernet/renesas/ravb_main.c
> > @@ -694,6 +694,9 @@ static int ravb_dmac_init(struct net_device *ndev)
> >         const struct ravb_hw_info *info = priv->info;
> >         int error;
> >
> > +       /* Clear transmission suspension */
> > +       ravb_modify(ndev, CCC, CCC_DTSR, 0);
> > +
> >         /* Set CONFIG mode */
> >         error = ravb_set_opmode(ndev, CCC_OPC_CONFIG);
> >         if (error)
> > @@ -1103,6 +1106,12 @@ static int ravb_stop_dma(struct net_device *ndev)
> >         if (error)
> >                 return error;
> >
> > +       /* Request for transmission suspension */
> > +       ravb_modify(ndev, CCC, CCC_DTSR, CCC_DTSR);
> > +       error = ravb_wait(ndev, CSR, CSR_DTS, CSR_DTS);
> > +       if (error)
> > +               netdev_err(ndev, "failed to stop AXI BUS\n");
> 
> This error message is printed during resume from s2idle or s2ram on
> e.g. Salvator-XS and Gray Hawk Single.  Ethernet (nfsroot) still works
> fine, though.

I was not able to reproduce this on M3N (r8a77965-salvator-xs.dts) nor 
Sparrow Hawk (r8a779g3-sparrow-hawk.dts). I'm using the following to 
test, is your test-case different?

  # echo enabled > /sys/class/tty/ttySC0/power/wakeup
  # echo s2idle > /sys/power/mem_sleep
  # echo 0 > /sys/module/printk/parameters/console_suspend
  # echo mem > /sys/power/state

Console log from M3N (console wakeup)

[  149.278623] Freezing user space processes
[  149.287951] Freezing user space processes completed (elapsed 0.005 seconds)
[  149.295439] OOM killer disabled.
[  149.298796] Freezing remaining freezable tasks
[  149.305367] Freezing remaining freezable tasks completed (elapsed 0.002 seconds)
[  149.364876] ravb e6800000.ethernet end0: Link is Down
[  149.701951] usb usb2: root hub lost power or was reset
[  149.708295] usb usb1: root hub lost power or was reset
[  149.793871] usb usb3: root hub lost power or was reset
[  149.799174] usb usb4: root hub lost power or was reset
[  149.931707] Micrel KSZ9031 Gigabit PHY e6800000.ethernet-ffffffff:00: attached PHY driver (mii_bus:phy_addr=e6800000.ethernet-ffffffff:00, irq=170)
[  150.008695] OOM killer enabled.
[  150.012003] Restarting tasks: Starting
[  150.020596] Restarting tasks: Done
[  150.024234] random: crng reseeded on system resumption
[  150.036191] PM: suspend exit
[  150.235966] ata1: link resume succeeded after 1 retries
[  150.344391] ata1: SATA link down (SStatus 0 SControl 300)
[  156.499184] ravb e6800000.ethernet end0: Link is Up - 1Gbps/Full - flow control off

Console log from V4H (console wakeup)

[   64.982935] Filesystems sync: 0.000 seconds
[   64.992414] Freezing user space processes
[   64.996111] Freezing user space processes completed (elapsed 0.002 seconds)
[   64.997280] OOM killer disabled.
[   64.997711] Freezing remaining freezable tasks
[   65.000580] Freezing remaining freezable tasks completed (elapsed 0.002 seconds)
[   65.012959] ravb e6800000.ethernet end0: Link is Down
[   65.167569] Micrel KSZ9031 Gigabit PHY e6800000.ethernet-ffffffff:00: attached PHY driver (mii_bus:phy_addr=e6800000.ethernet-ffffffff:00, irq=108)
[   65.190614] OOM killer enabled.
[   65.191058] Restarting tasks: Starting
[   65.195133] Restarting tasks: Done
[   65.195743] random: crng reseeded on system resumption
[   65.201052] PM: suspend exit
[   71.305027] ravb e6800000.ethernet end0: Link is Up - 1Gbps/Full - flow control off

> 
> > +
> >         /* Stop AVB-DMAC process */
> >         return ravb_set_opmode(ndev, CCC_OPC_CONFIG);
> >  }
> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> -- 
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds

-- 
Kind Regards,
Niklas Söderlund

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-04-07 18:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-01 18:36 [net-next] net: ethernet: ravb: Suspend and resume the transmission flow Niklas Söderlund
2026-04-03 23:20 ` patchwork-bot+netdevbpf
2026-04-07  9:03 ` Geert Uytterhoeven
2026-04-07 18:54   ` Niklas Söderlund

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox