On Tue, Jun 4, 2024 at 7:43 PM Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote: > > 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? These symbols are not exported and I personally dislike the get/put pattern. Best I can do is _ref/_unref like what kref does. Bart