Hi Geert, On Tuesday, January 24, 2017, Geert Uytterhoeven wrote: > > Therefore, before I start firing off patches to remove runtime PM for > RZ/A, does anyone have an opinion one way of the other???? > > Please have a look at Section 55.3.5 ("Module Standby Function"), which I > had never read myself, apparently... > > Seem like there is some kind of status register, the STBCR register > itself: > > Canceling Module Standby Function: > 1. Clear the MSTP bit to 0. > 2. After that, dummy-read the same register. > > Does it help if you add the dummy read when enabling the clock? Already tried that. And put a barrier() call just to make sure everything was done. It seems that might be enough for the RSPI, but the RIIC still has issues. >From what I can tell, that makes the register space readable...but the IP block is not fully functional unless you delay a little. > However, that section reveals another complicating factor for some > modules: > if the module has a bit in a STBREQn/STBACKn register, a module standy > request must be sent to the module before stopping the module clock. > > Looks like you're gonna need a whole new RZ/A1-specific clock driver to > handle all those details... There are only a couple IP blocks called out in the STBREQn/STBACKn registers, and I think they are not really crucial for runtime pm (Ethenret, LCD, Coresight, etc..). So in my opinion it's not worth a new driver just yet. But, I think I'd like to disable runtime pm for RZ/A1 in the drivers for now Because 'functional' is better than 'lower-power-but-broken' Chris