On 1/5/24 11:23 AM, Claudiu wrote: > From: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx> > > Do not apply the RX CSUM settings to hardware if the interface is down. In > case runtime PM is enabled, and while the interface is down, the IP will be > in reset mode (as for some platforms disabling the clocks will switch the > IP to reset mode, which will lead to losing registers content) and applying > settings in reset mode is not an option. Instead, cache the RX CSUM > settings and apply them in ravb_open() though ravb_emac_init(). > > Commit prepares for the addition of runtime PM. > > Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx> [...] > diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c > index 168b6208db37..e909960fbc30 100644 > --- a/drivers/net/ethernet/renesas/ravb_main.c > +++ b/drivers/net/ethernet/renesas/ravb_main.c > @@ -2342,6 +2342,9 @@ static void ravb_set_rx_csum(struct net_device *ndev, bool enable) > struct ravb_private *priv = netdev_priv(ndev); > unsigned long flags; > > + if (!(ndev->flags & IFF_UP)) Well, I guess it's even OK to even write EDCMR in the reset mode... BUT again, won't this race with pm_runtime_put_autosuspend() when its call gets added to ravb_close()? > + return; > + > spin_lock_irqsave(&priv->lock, flags); > > /* Disable TX and RX */ MBR, Sergey