RE: [PATCH v2] counter: rz-mtu3-cnt: put runtime PM ref if counter init fails
From: Biju Das
Date: Sat Oct 31 2026 - 12:34:47 EST
Hi William Breathitt Gray,
Thanks for the feedback.
> -----Original Message-----
> From: William Breathitt Gray <wbg@xxxxxxxxxx>
> Sent: 31 October 2026 16:29
> Subject: Re: [PATCH v2] counter: rz-mtu3-cnt: put runtime PM ref if counter init fails
>
> On Sat, Oct 31, 2026 at 10:28:13PM +0800, Li Youhong wrote:
> > From: Li Youhong <liyouhong@xxxxxxxxxx>
> >
> > Counter enable takes a runtime PM reference before initialization but
> > only puts it on disable. Drop the reference if initialization fails.
> >
> > Fixes: 0be8907359df ("counter: Add Renesas RZ/G2L MTU3a counter
> > driver")
> > Cc: stable@xxxxxxxxxxxxxxx
> > Reviewed-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@xxxxxxxxxxx>
> > Signed-off-by: Li Youhong <liyouhong@xxxxxxxxxx>
> > ---
> > v2:
> > - Add Cc: stable@xxxxxxxxxxxxxxx.
> > - v1:
> > https://lore.kernel.org/all/20261008020506.211566-1-dayou5941@xxxxxxx/
> >
> > drivers/counter/rz-mtu3-cnt.c | 7 +++++--
> > 1 file changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/counter/rz-mtu3-cnt.c
> > b/drivers/counter/rz-mtu3-cnt.c index 7bfb6979193c..61fbeb122851
> > 100644
> > --- a/drivers/counter/rz-mtu3-cnt.c
> > +++ b/drivers/counter/rz-mtu3-cnt.c
> > @@ -506,8 +506,11 @@ static int rz_mtu3_count_enable_write(struct counter_device *counter,
> > if (enable) {
> > pm_runtime_get_sync(counter->parent);
> > ret = rz_mtu3_initialize_counter(counter, count->id);
> > - if (ret == 0)
> > - priv->count_is_enabled[count->id] = true;
> > + if (ret < 0) {
> > + pm_runtime_put(counter->parent);
> > + goto exit;
> > + }
> > + priv->count_is_enabled[count->id] = true;
> > } else {
> > rz_mtu3_terminate_counter(counter, count->id);
> > priv->count_is_enabled[count->id] = false;
> > --
> > 2.25.1
> >
>
> This patch seems similar to another we're considering for ti-eqep.[^1] In that patch, runtime PM is
> managed via devm which allows us to remove the explicit PM unwind on failures and have them implicitly
> handled when the device resource is released. Should we use the same approach for rz-mtu-cnt?
Here we save power, clock is turned on/off during counter enable/disable.
On TI case, they enable it during the probe which unnecessarily waste power.
Even disable case, the clock is on.
Cheers,
Biju