On Wed, Jul 13, 2022 at 1:44 PM Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: > > > IIRC this led to problems because we had to invent "atomic regulators" > > > because regulators use kernel abstractions that assume slowpath > > > (process context) and power domains does not, i.e. they execute in > > > fastpath, such as an interrupt handler. > > This isn't entirely correct. The callbacks of a genpd, *may* execute > in atomic context, but that depends on whether the GENPD_FLAG_IRQ_SAFE > is set for it or not. > > Similar to what we have for runtime PM callbacks, with pm_runtime_irq_safe(). Aha I stand corrected! > > > The atomic regulator was a subset of regulator that only handled > > > regulators that would result in something like an atomic register write. > > > > > > In the end it was not worth trying to upstream this approach, and > > > as I remember it, Ulf Hansson intended to let the power domains poke > > > these registers directly, which was easier. (It's on Ulfs TODO list to > > > actually implement this, hehe.) > > Yep, unfortunately I never got to the point. However, poking the > registers directly from the genpd provider's on/off callbacks has > never been my plan. > > Instead I would rather expect us to call into a Ux500 specific > interface for the prcmu FW. Simply because it's not really a regulator > and must not be modelled like it. Instead it is a voltage/frequency > domain that is managed behind a FW interface. We should take a stab at this, PostmarketOS just added support for three more U8500 phones so they support all the Samsung models and we have actual users of these systems. I think this would save them quite a lot of power. Also I use these targets for a lot of misc testing (like Kasan etc). Yours, Linus Walleij