On 23.01.2024 22:43, Sergey Shtylyov wrote: > On 1/23/24 3:58 PM, Claudiu wrote: > >> From: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx> >> >> Reference clock could be or not part of the power domain. If it is part of > > Could be or not be, perhaps? > >> the power domain, the power domain takes care of propertly setting it. In > > Properly. :-) > >> case it is not part of the power domain and full runtime PM support is >> available in driver the clock will not be propertly disabled/enabled at >> runtime. For this, keep the prepare/unprepare operations in the driver's >> probe()/remove() functions and move the enable/disable in runtime PM >> functions. >> >> Along with it, the other clock request operations were moved close to >> reference clock request and prepare to have all the clock requests >> specific code grouped together. >> >> 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 9fc0e39e33c2..4673cc2faec0 100644 >> --- a/drivers/net/ethernet/renesas/ravb_main.c >> +++ b/drivers/net/ethernet/renesas/ravb_main.c > [...] >> @@ -3060,21 +3058,27 @@ static int ravb_resume(struct device *dev) >> return ret; >> } >> >> -static int ravb_runtime_nop(struct device *dev) >> +static int ravb_runtime_suspend(struct device *dev) >> { >> - /* Runtime PM callback shared between ->runtime_suspend() >> - * and ->runtime_resume(). Simply returns success. >> - * >> - * This driver re-initializes all registers after >> - * pm_runtime_get_sync() anyway so there is no need >> - * to save and restore registers here. >> - */ > > I want to pull out the dummy {ravb|sh_eth}_runtime_nop() funcs -- > they don't seem to be necessary... Then we can implement your clock > dance with freshly added ravb_runtime_{suspend|resume}()... For this series, does it worth having a patch that removes ravb runtime suspend/resume ops to then add a new patch that add it it again? I can do it but it I see no reason in doing it in this series... The dummy functions were there and the commit description explains the reason they were updated. Thank you, Claudiu Beznea > > [...] > > MBR, Sergey