On Tue, May 28, 2024 at 09:03:18PM +0200, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > Implement the power sequencing subsystem allowing devices to share > complex powering-up and down procedures. It's split into the consumer > and provider parts but does not implement any new DT bindings so that > the actual power sequencing is never revealed in the DT representation. > +++ b/drivers/power/sequencing/core.c > + * Unit - a unit is a discreet chunk of a power sequence. For instance one unit s/discreet/discrete/ > +static struct pwrseq_unit *pwrseq_unit_incref(struct pwrseq_unit *unit) > +{ > + kref_get(&unit->ref); > + > + return unit; > +} > + > +static void pwrseq_unit_release(struct kref *ref); > + > +static void pwrseq_unit_decref(struct pwrseq_unit *unit) > +{ > + kref_put(&unit->ref, pwrseq_unit_release); > +} No existing callers of kref_get() and kref_put() use names that include "incref" or "decref". Many include "get" and "put", so maybe there would be some value in using that pattern?