On Fri, May 15, 2020 at 6:26 PM Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: > > + Niklas, Geert, Yamada-san, > > > On Wed, 13 May 2020 at 19:31, Wolfram Sang > <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > The SDHI driver en-/disabled clocks on its own during probe() and > > remove(). This basically killed all potential RPM power savings. Now, we > > just enable the clocks for a short time when we access registers in > > probe(). We otherwise leave all handling to RPM. That means, we need to > > shift the RPM enabling code in the TMIO core a bit up, so we can access > > registers there, too. > > No, this doesn't sound entirely right to me. > > However, I do admit that we may need to move the pm_runtime > initialization earlier (perhaps even out of tmio_mmc_core), but for > slightly different reasons. Let me elaborate. > > For uniphier-sd, renesas_sdhi_sys_dmac and renesas_sdhi_internal_dmac > - they all have assigned the ->clk_enable|disable() ops. Which means > they have internal clock management (calling clk_prepare|enable() > etc). For tmio_mmc, that's not the case. > > On top of this, the device may also have a potential PM domain > attached. If that is the case, the PM domain may or may not have clock > management implemented through genpd's ->start|stop() callbacks. > > So, in the end we are going to have to rely on clock enable/prepare > reference counting, as we have to manage the clock(s) at both the > driver and the PM domain level. Taking into account all various > combinations (and that CONFIG_PM may not always be set). I have > started to hack on some patches, but before I share them, let me ask a > few questions. > > 1. tmio_mmc: - is that used solely with clock management through > genpd? Or has no clock management at all? > 2. uniphier-sd: Don't have runtime PM callbacks assigned. It looks > like it doesn't care about runtime PM, but maybe it does through a PM > domain? Can we skip to enable runtime PM for uniphier-sd, no? Right, uniphier-sd does not care about runtime PM. UniPhier SoCs do not have separate power domains. -- Best Regards Masahiro Yamada