On Mon, 13 Jan 2025 14:11:16 +0000 Mark Brown <broonie@xxxxxxxxxx> wrote: > On Mon, Jan 13, 2025 at 02:07:45PM +0100, Kory Maincent wrote: > > > + rdev->pw_available_mW -= pw_req; > > ... > > > + if (!of_property_read_u32(np, "regulator-power-budget-milliwatt", > > &pval)) > > + constraints->pw_budget_mW = pval; > > + > > This is only tracking the currently free power budget which both > restricts what we can do for tracking things like mismatched or missing > frees and means there's less information for diagnostic tools. I'd > prefer to keep track of how much is in use and check against the budget > when trying to increase it, allowing us to check for releasing more > budget than was requested. Ack. > There's also an interaction with hardware with support for enforcing > power limits, either via alarms or by actually limiting. Current > limiting/warning support is reasonably common, we should probably be > joining it up with the power limiting. It's fortunately not used > dynamically by anything at the minute so we could just remove that API > and replace it by a power one, given that nobody uses it and there do > appear to be users for the power based API. We do have some things that > set current limits in constraints IIRC. There is few users for the regulator_set_current_limit function. https://elixir.bootlin.com/linux/v6.12.6/A/ident/regulator_set_current_limit Not sure we could replace it to power limit that easily. > We probably also need something explicit about how we handle baseline > load from things like passive components, the assumption probably needs > to be that it's negligable. We could add a devicetree property on the consumer node, but lets keep it for later. Regards, -- Köry Maincent, Bootlin Embedded Linux and kernel engineering https://bootlin.com