Hi Chris, On Fri, Jan 27, 2017 at 4:05 AM, Chris Brandt <Chris.Brandt@xxxxxxxxxxx> wrote: > On Wednesday, January 25, 2017, Geert Uytterhoeven wrote: >> >> I think you can handle that in drivers/clk/renesas/clk-mstp.c: >> >> - in cpg_mstp_attach_dev(), add a call to pm_clk_resume(dev) after >> the >> >> call to pm_clk_add_clk(), >> >> - in cpg_mstp_detach_dev(), add a call to pm_clk_suspend(dev) before >> the >> >> call to pm_clk_destroy(). >> >> Yes, that means the module clocks are enabled all the time. >> >> Of course when running on RZ/A1H ;-) >> > >> > That might be OK. >> >> Forgot to mention: you should also no longer set GENPD_FLAG_PM_CLK in >> cpg_mstp_add_clk_domain(). The flag won't hurt, it will just cause extra >> code to be executed. > > So to be clear before I start hacking away, your suggestion here is > to do this ONLY for RZ/A1 so I don't screw up any other SoCs, right? Correct. > For example: > > int cpg_mstp_attach_dev() > { > ... > > error = pm_clk_add_clk(dev, clk); > if (error) { > dev_err(dev, "pm_clk_add_clk %pC failed %d\n", clk, error); > goto fail_destroy; > } > > + if (of_device_is_compatible(np, "renesas,r7s72100-mstp-clocks")) > + pm_clk_suspend(dev); That should be pm_clk_resume(dev), as is this the attach function ;-) And please drop GENPD_FLAG_PM_CLK on RZ/A1, too. > ... > } > > Then, this would be OK to submit until I find some other way to do stable > runtime pm for RZ/A1? (which might not be possible...unless I put in the > silly delay) > > A that point, any peripheral I use (status="okay") will stay on, but the > ones I don't use will stay off, correct? Correct. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx 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