On 1/8/24 11:34 PM, Sergey Shtylyov 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 Well, I guess it's even OK to write ECMR in the reset mode... :-) > again, won't this race with pm_runtime_put_autosuspend() when its call gets > added to ravb_close()? [...] MBR, Sergey